php - 变量数量与参数数量不匹配——是的,它们匹配

标签 php mysqli

因此,根据建议,我正在尝试包含准备好的语句。

但是 PHP 不接受我的代码。

$stmt = $link->prepare('SELECT COUNT(*) FROM `table` WHERE `company` = CONVERT( _utf8 \'?\' USING latin1 )  COLLATE latin1_german1_ci AND `password` = CONVERT( _utf8 \'?\' USING latin1 ) COLLATE latin1_german1_ci');
$stmt->bind_Param('ss',  $firmaP, $kennwP);
$firmaP = utf8_encode($_POST['company']);
$kennwP = utf8_encode($_POST['password']);
if ($stmt->execute()) {
  if($row = $stmt->fetch()) {
      echo "OK";
    }
    else
    {
      echo "NO";
    }
}

我明白了

Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement

而我在查询中有两个问号,在 bind_Param 中有两个变量。

如何解决?

编辑:将\'?\' 替换为 ?导致

Fatal error: Call to a member function bind_param() on a non-object

最佳答案

不要引用你的 ? 如下:

$stmt = $link->prepare('SELECT COUNT(*) FROM `table` WHERE `company` = CONVERT( _utf8 ? USING latin1 )  COLLATE latin1_german1_ci AND `password` = CONVERT( _utf8 ? USING latin1 ) COLLATE latin1_german1_ci');
$firmaP = utf8_encode($_POST['company']);
$kennwP = utf8_encode($_POST['password']);
$stmt->bind_Param('ss',  $firmaP, $kennwP);
if ($stmt->execute()) {
  if($row = $stmt->fetch()) {
      echo "OK";
    }
    else
    {
      echo "NO";
    }
}

关于php - 变量数量与参数数量不匹配——是的,它们匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14323476/

相关文章:

php - 我在设计过程中忘记了正确的列。可以添加右列吗?

php - 左连接两个表,多列

php - 在单列中管理父子层次结构

php - 如何从 php 中检索值?

php - css 是否可以在 echo 中设计一个元素

java - 用户注册时如何在服务器上创建目录?

php - 更新php表中的数据时黑屏

php - JSON 转换 URL 错误

php - 带边框的动态表格

php - Symfony2 Doctrine 子查询