【发布时间】:2014-04-09 11:54:10
【问题描述】:
$pdo = $db_con->prepare("INSERT INTO agents (Agent_ID,Agent_Name,Agent_Branch) VALUES (:1, :2, :3)");
$pdo->bindParam(':1', $id);
$pdo->bindParam(':2', $agent);
$pdo->bindParam(':3', $branch);
$pdo->execute();
没有错误,这确实有效
$db_con->exec("INSERT INTO agents (Agent_ID,Agent_Name,Agent_Branch) VALUES ('fd','dd','d')");
顺便问一下,第一种方法更安全还是没关系?
【问题讨论】:
-
第一种方法更安全,因为 bindParam 可以保护您免受 Sql 注入。
-
您
bindValue()除非您从语句中绑定返回值,并使用:id、:agent等名称作为占位符。我猜只是数字标识符是无效的。您还可以将 PDO 设置为对错误使用异常,以便在错误时引发异常。否则,您可以在声明中使用errorInfo()以获取更多信息。这对调试很有用。 -
errorInfo 显示了这个数组 ( [0] => 00000 [1] => [2] => )
-
不使用数字没有区别