【问题标题】:Invalid parameter number: number of bound variables does not match number of tokens :无效的参数号:绑定变量的数量与标记的数量不匹配:
【发布时间】:2016-03-16 06:39:40
【问题描述】:

我正在尝试一次插入我的两个表中

但我不断收到此错误

无效的参数号:绑定变量的数量与标记的数量不匹配:

$dbh->beginTransaction();

try{
    if(sizeof($return['error'])==0){
        $sql = "INSERT INTO circle_call_prefixes (circle, prefix)
                  VALUES (?,?)";
        $q = $dbh->prepare($sql);
        $q ->execute(array('123', '123'));
        $Last_ID = $dbh->lastInsertId();
        $sql_table2 = "INSERT INTO circle_call_destinations 
          (autoNo,destination, source_circle) VALUES (?,?,?)";
        $q = $dbh->prepare($sql);
        $q -> execute(array($Last_ID, '123', '123'));

        $dbh->commit();
    }

可能的问题是什么?谢谢

【问题讨论】:

  • 你能检查 $Last_ID 是否让你有价值吗?
  • 我检查一下。 .值为零 (0)
  • 例如尝试用任何 int 1 替换 $Last_id 并进行测试
  • 我试试,同样的错误出现。 .

标签: php pdo


【解决方案1】:

您尝试在两种情况下都运行 $sql,但应该在第二种情况下运行 $sql_table2。这段代码应该可以工作:

$dbh->beginTransaction();

try{
    if(sizeof($return['error'])==0){
        $sql = "INSERT INTO circle_call_prefixes (circle, prefix)
                  VALUES (?,?)";
        $q = $dbh->prepare($sql);
        $q ->execute(array('123', '123'));
        $Last_ID = $dbh->lastInsertId();
        $sql_table2 = "INSERT INTO circle_call_destinations 
          (autoNo,destination, source_circle) VALUES (?,?,?)";
        $q = $dbh->prepare($sql_table2);
        $q -> execute(array($Last_ID, '123', '123'));

        $dbh->commit();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    相关资源
    最近更新 更多