准备好的声明期望0个参数,1个给定..,使用php手册示例

时间:2013-09-04 01:47:58

标签: php prepared-statement

我从php手册示例中直接看了 - 它几乎与我需要的相同,但我仍然收到此错误。

有人可以告诉我我错过了什么吗?

$stmt = $link->prepare("SELECT obitBody, Photo FROM tnObit WHERE obitID = ?");
if ($stmt->execute(array($_POST['obitID']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}

mysqli_stmt :: execute()需要0个参数,在

中给出1

1 个答案:

答案 0 :(得分:2)

execute(基于对象的,与较旧的不太受欢迎的变体相对)实际上并不接受任何参数。

从您的查询和尝试参数到execute,您似乎正在尝试将所需参数作为数组传递给execute调用。这不是它的完成方式。

在调用?之前,您需要在单独的调用中将变量绑定到execute标记。

This question(一旦修复了接受的答案)显示了您需要遵循的一般过程:

  • 创建声明;
  • 准备声明;
  • 绑定参数;
  • 执行(使用参数);
  • 存储结果(如果缓冲);
  • 绑定结果变量;
  • 获取(循环,最有可能);
  • close statement。