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();

正確なエラーは次のとおりです。

致命的なエラー: メッセージ「SQLSTATE[HY000]: 一般エラー: 25 バインドまたは列インデックスが範囲外です」を含むキャッチされない例外「PDOException」

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 に答える