PDO プリペアド ステートメントを使用した MySQL INSERT INTO クエリ
PHP 開発の領域では、PDO を使用して MySQL クエリを実行すると、多くの利点が得られます。ただし、初心者が INSERT INTO 操作にプリペアド ステートメントを利用しようとすると、障害に遭遇することがよくあります。
次の謎のコード スニペットを考えてみましょう:
$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')"); $statement->execute();
コーダーの熱心な努力にもかかわらず、データベースは残ります。悲しいほど空っぽ。コード内にはどのようなとらえどころのないエラーが潜んでいるのでしょうか?
成功への隠された鍵
この謎を解明する鍵は、パラメーター バインディングの力を理解することにあります。 PDO プリペアド ステートメントを使用すると、開発者は連結に頼ることなく、SQL クエリ内のプレースホルダーに値を安全にバインドできます。これを実現するには、次の手順に注意深く従う必要があります。
バインド パラメータを含むサンプル コード
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (:fname, :sname, :age)'); $statement->execute([ 'fname' => 'Bob', 'sname' => 'Desaunois', 'age' => '18', ]);
インデックス パラメータを含むサンプル コード
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (?, ?, ?)'); $statement->execute(['Bob', 'Desaunois', '18']);
利点とPreferences
どちらのパラメーター バインド方法にも、それぞれ独自の長所と短所があります。パラメータ名によるバインドにより可読性が向上し、インデックスによるバインドによりコードを削減できます。最終的には開発者の好みによって選択が決まります。
これらの原則を採用すると、開発者は PDO プリペアド ステートメントを使用して INSERT INTO 操作を簡単に実行できるようになり、データがデータベース内の適切な場所に確実に配置されるようになります。
以上がPDO プリペアド ステートメントが MySQL に INSERT しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。