ホームページ >データベース >mysql チュートリアル >プリペアドステートメントを使用して MySQL でデータを安全に更新するにはどうすればよいですか?
更新クエリにプリペアド ステートメントを使用する
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 サイトの他の関連記事を参照してください。