php - SQLSTATE[HY093] : Invalid parameter number (parameters not match)

标签 php mysql pdo parameters

SQLSTATE[HY093]:参数数量无效:绑定(bind)变量数量与标记数量不匹配

我知道有几个问题存在同样的问题。但我检查了所有答案,问题仍然无法解决。真的希望有人能帮助我。非常感谢!

session_start();
$cid = $_POST['cid'];
$pContent = $_POST['pContent'];
$sContent = $_POST['sContent'];

$insert = "INSERT INTO 'Card'('cardID', 'creator', 'primaryLanguage', 
          'secondaryLanguage', 'primaryContent', 'secondaryContent')
          VALUES (:cid, 'abc', 'English', 'Chinese', ':pContent', ':sContent')";
try {
  $stmt = $dbh->prepare($insert, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
  $stmt->bindValue(":cid", $cid, PDO::PARAM_INT);
  $stmt->bindValue(":pContent", $pContent, PDO::PARAM_STR);
  $stmt->bindValue(":sContent", $sContent, PDO::PARAM_STR);
  $stmt->execute();
  unset($stmt);
} catch (Exception $e) {
  echo 'Exception : ' . $e->getMessage() . "\n";
  die();
}

最佳答案

查询中很少有错误。

  • 列名称不需要单引号

  • 占位符的绑定(bind)值不需要单引号

所以查询应该是这样的

INSERT INTO 
Card(
cardID, 
creator, 
primaryLanguage, 
secondaryLanguage,
primaryContent, 
secondaryContent
)
VALUES 
(
:cid, 
'abc',
'English', 
'Chinese', 
:pContent, 
:sContent
);

关于php - SQLSTATE[HY093] : Invalid parameter number (parameters not match),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449087/

相关文章:

php - 使用表格内的按钮通过 jQuery 打开模式

php - 如何使用 PHP 从多个表中选择数据并显示它?

php - 如何在 Laravel 5.8 中使用 IF 和 ELSE 检查 mysql 表 NULL 或 NOT?

mysql - 如何从数据库中的日期中减去日期

php - 如何在 Amazon Elastic Beanstalk 上安装 PHP IMAP 扩展

php - 添加两个表时复制结果

mysql - 使用 PDO 的资源链接标识符?

PHP PDO Select 查询不从数据库中选择行

php - PDO 插入引发无法解释的 "Array to string conversion"错误

php - 通过 pdo 连接到 vertica 数据库时出错