ホームページ >バックエンド開発 >PHPチュートリアル >PHP で mysqli プリペアド ステートメントを効果的に使用するにはどうすればよいですか?

PHP で mysqli プリペアド ステートメントを効果的に使用するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-09 09:57:061014ブラウズ

How Can I Effectively Use mysqli Prepared Statements in PHP?

mysqli プリペアド ステートメントの理解と実装

mysqli プリペアド ステートメントの使用で問題が発生した場合は、その根本原因を特定することが重要です。問題。提供したコードを分析して、発生したエラーに対処しましょう。

コードでは、パラメーターをバインドせずに準備されたステートメントを実行しようとしています。 mysqli::prepare ドキュメントによると、準備されたステートメントのパラメーター マーカーは、実行前にアプリケーション変数にバインドされる必要があります。この問題を解決するには、ステートメントを実行する前に mysqli_stmt_bind_param() を使用してパラメーターをバインドする必要があります。

プリペアド ステートメントでの mysqli の使用に関するご質問に関しては、はい、mysqli は PHP の推奨拡張子であり、広くサポートされています。プリペアド ステートメント、データ バインディング、トランザクション管理など、SQL クエリを処理するための堅牢な機能を提供します。

完全な例: エラー処理を使用した接続、挿入、選択

これは、接続、挿入、エラーのある選択など、mysqli でプリペアド ステートメントを使用する方法を示す完全な例です。処理:

<?php
// Establish a connection to the database
$mysqli = new mysqli("localhost", "root", "root", "test");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

// Prepare insert statement
$sql = "INSERT INTO users (name, age) VALUES (?, ?)";
$stmt = $mysqli->prepare($sql);
if (!$stmt) {
    echo "Failed to prepare statement: " . $mysqli->error;
    exit();
}

// Bind parameters
$name = 'John Doe';
$age = 30;
$stmt->bind_param("si", $name, $age);

// Execute insertion
if (!$stmt->execute()) {
    echo "Failed to execute insertion: " . $stmt->error;
    exit();
}

// Prepare select statement
$sql = "SELECT * FROM users WHERE name = ?";
$stmt = $mysqli->prepare($sql);
if (!$stmt) {
    echo "Failed to prepare statement: " . $mysqli->error;
    exit();
}

// Bind parameter
$name = 'John Doe';
$stmt->bind_param("s", $name);

// Execute selection
if (!$stmt->execute()) {
    echo "Failed to execute selection: " . $stmt->error;
    exit();
}

// Get result
$result = $stmt->get_result();
if (!$result) {
    echo "Failed to get result: " . $stmt->error;
    exit();
}

// Iterate through the result and display data
while ($row = $result->fetch_assoc()) {
    echo "ID: " . $row['id'] . ", Name: " . $row['name'] . ", Age: " . $row['age'] . "\n";
}

// Close the statement and connection
$stmt->close();
$mysqli->close();
?>

このコードは、データベースへの接続を確立し、insert ステートメントと select ステートメントを準備し、パラメーターをバインドし、クエリを実行し、それに応じてエラーを処理します。 mysqli でプリペアド ステートメントを使用する完全なワークフローを示します。

以上がPHP で mysqli プリペアド ステートメントを効果的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。