你应该这样使用它
$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(array(
"fname" => "Bob",
"sname" => "Desaunois",
"age" => "18"
));
准备的语句用于清理您的输入,并且要做到这一点,您可以使用:foo在SQL中没有任何单引号来绑定变量,然后在execute()函数中传递您定义的变量的关联数组SQL语句。
你也可以使用?而不是:foo然后传入一个数组的值输入如此;
$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
VALUES(?, ?, ?)");
$statement->execute(array("Bob", "Desaunois", "18"));
两种方式都有其优点和缺点。我个人更喜欢绑定参数名称,因为我更容易阅读。