3

我目前有以下代码:

$dbh = new PDO('mysql:host='.DATABASE_HOST.';dbname='.DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$dbh->prepare("INSERT INTO mdr_contacts SET fkRelatieId = 0, reseller = 0, code = :code, naam = :naam");
$dbh->execute(array(":code" => $contact["contact_id"],":naam" => $name));

然而,这似乎失败了:Fatal error: Call to undefined method PDO::execute() in file.php on line 67

到目前为止,我为完成这项工作所做的工作:

  1. 检查是否存在$name并且$contact具有正确的值。
  2. 在准备语句之前执行 SELECT 查询以确保 PDO 正常工作。
  3. 在 ATTR_EMULATE_PREPARES 未设置为 false 的情况下运行代码。

但是这些都行不通,任何人都可以让我朝着正确的方向前进吗?

4

1 回答 1

2

你执行一个语句,而不是一个连接。 prepare()在连接上,返回一个语句。

此外,我更喜欢显式调用绑定值,但这只是我的强迫症偏好。

 $statement = $dbh->prepare("INSERT INTO mdr_contacts SET fkRelatieId = 0, reseller = 0, code = :code, naam = :naam");
 $statement->bindValue(":code", $contact["contact_id"]);
 $statement->bindValue(":naam", $name);
 $statement->execute();
于 2012-11-05T14:41:09.937 回答