0

我直接从 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 个在

4

1 回答 1

2

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

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

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

这个问题(一旦用接受的答案解决)显示了您需要遵循的一般过程:

  • 创建声明;
  • 准备声明;
  • 绑定参数;
  • 执行(带参数);
  • 存储结果(如果缓冲);
  • 绑定结果变量;
  • 获取(很可能在循环中);
  • 关闭声明。
于 2013-09-04T01:55:03.747 回答