ホームページ  >  記事  >  データベース  >  プリペアドステートメントを使用して MySQL でデータを安全に更新するにはどうすればよいですか?

プリペアドステートメントを使用して MySQL でデータを安全に更新するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 09:10:29214ブラウズ

How to Update Data Securely in MySQL using Prepared Statements?

更新クエリにプリペアド ステートメントを使用する

PHP および MySQL で更新クエリを実行する場合は、データの整合性を確保するためにプリペアド ステートメントを使用することをお勧めします。 SQL インジェクションを防ぎます。 MySQL の UPDATE ステートメントに関する最近の議論で、ユーザーはプリペアド ステートメントの利用方法に関するガイダンスを求めました。

解決策

MySQL では、プリペアド ステートメントは INSERT と同様の形式に従います。または SELECT ステートメント。 UPDATE クエリにプリペアド ステートメントを使用するには、すべての変数値を疑問符 (?) で表されるプレースホルダーに置き換えます。

<code class="php">$sql = "UPDATE Applicant SET phone_number=?, street_name=?, city=?, county=?, zip_code=?, day_date=?, month_date=?, year_date=? WHERE account_id=?";</code>

SQL ステートメントが準備されたら、プリペアド ステートメント オブジェクトを作成します。

<code class="php">$stmt = $db_usag->prepare($sql);</code>

次に、準備されたステートメントにパラメータをバインドします。次の例では、date パラメータと account_id パラメータが整数 (d) で、残りのパラメータが文字列 (s) であると想定しています。

<code class="php">$stmt->bind_param('sssssdddd', $phone_number, $street_name, $city, $county, $zip_code, $day_date, $month_date, $year_date, $account_id);</code>

準備されたステートメントを実行します:

<code class="php">$stmt->execute();</code>

Handleエラーが発生した場合:

<code class="php">if ($stmt->error) {
  echo "FAILURE!!! " . $stmt->error;
}
else echo "Updated {$stmt->affected_rows} rows";</code>

最後に、準備されたステートメントを閉じます:

<code class="php">$stmt->close();</code>

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

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