我准备的 pdo 插入语句中出错


Error in my prepared pdo insert statements

我正在尝试使用 pdo 上的 prepare 语句插入值,但我遇到了此错误

警告: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]:参数编号无效:未绑定任何参数 C:''wamp''www''chat''insert.php 在第 23 行

$db = new PDO($dns, $user, $pass);
$sql = "INSERT INTO `conversations_t` (`fk_crname_c`, `fk_username_c`, `message_c`) VALUES (?, ?, ?)";
$sq_stat = $db->prepare($sql);
// bind column to variable for display
$sq_stat->bindColumn(1, $chatname);
$sq_stat->bindColumn(2,$username);
$sq_stat->bindColumn(3, $message);

$count=$sq_stat->execute();

使用 bindParambindValuebindColumn

$sq_stat -> bindParam(1, $chatname);
$sq_stat -> bindParam(2, $username);
$sq_stat -> bindParam(3, $message);
bindColumn用于

结果。你想要bindValuebindParam

$sq_stat->bindValue(1, $chatname);
$sq_stat->bindValue(2,$username);
$sq_stat->bindValue(3, $message);

对于 Insert 语句,请尝试将值作为数组传递给执行函数。

$db = new PDO($dns, $user, $pass);
$sql = "INSERT INTO `conversations_t` (`fk_crname_c`, `fk_username_c`, `message_c`) VALUES (?, ?, ?)";
$sq_stat = $db->prepare($sql);
$count = $sq_stat->execute(array($chatname, $username, $message));