あなたはそれをそのように使うべきです
<?php
$dbhost = 'localhost';
$dbname = 'pdo';
$dbusername = 'root';
$dbpassword = '845625';
$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
VALUES (:fname, :sname, :age)');
$statement->execute([
'fname' => 'Bob',
'sname' => 'Desaunois',
'age' => '18',
]);
プリペアドステートメントは、入力をサニタイズするために使用されます。これを行うには、:foo
を使用できます。 なし SQL内の任意の一重引用符をバインドする 変数、次にexecute()
SQLステートメントで定義した変数の連想配列で渡す関数。
?
を使用することもできます :foo
の代わりに 次に、値だけの配列を渡して、そのように入力します;
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
VALUES (?, ?, ?)');
$statement->execute(['Bob', 'Desaunois', '18']);
どちらの方法にも長所と短所があります。個人的には、読みやすいようにパラメーター名をバインドすることを好みます。