2

为什么以下语句在 php 中失败(我已建立到名为 config.db 的 sqlite 数据库的 PDO 连接)。

$stmt = $this->db->prepare("INSERT INTO config (S_BASE_DIR) VALUES (':col0')");
$stmt->bindParam(':col0',$colValue);
$stmt->execute();
$stmt->close();

确切的错误是:

致命错误:未捕获的异常“PDOException”,带有消息“SQLSTATE [HY000]:一般错误:25 绑定或列索引超出范围”

4

1 回答 1

2

绑定到列时,不需要引用该列:

$stmt = $this->db->prepare( "INSERT INTO config (S_BASE_DIR) VALUES ( :col0 )" );
$stmt->bindParam(':col0', $colValue);

加上引号,:col0它只是一个字符串,而不是绑定参数。

于 2012-09-25T17:35:28.163 回答