PHP bind_param 没有绑定参数
PHP bind_param not binding parameter
我正在尝试使用 PHP 中的准备语句在 table 中搜索特定项目。我没有收到任何错误,但也没有收到任何记录。这是我的代码:
$items = [];
$search = "john";
if ($stmt = $this->con->prepare("SELECT * FROM phptest WHERE search = ?")) { //'john'";
$stmt->bind_param("s",$search);
$stmt->execute();
while ($row = mysqli_fetch_array($stmt)) {
$item = [];
$item['id'] = $row['id'];
$item['first'] = $row['search'];
$item['last'] = $row['data'];
array_push($items, $item);
}
}
return $items;
现在,当我 不 使用准备好的语句时,仅 SELECT * FROM phptest
我得到 table 中的所有结果(包括项目其中搜索 = 'john')。此外,如果我使用查询 SELECT * FROM phptest WHERE search = 'john'
我会得到一条记录,其中 search = 'john'
但是一旦我把它变成准备好的语句,我得到零错误但零记录。我 收到警告:
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given
这让我觉得我的 bind_param
或 execute()
返回了 FALSE,但当我检查时,它似乎没有返回 false。
我通过教程 https://www.simplifiedcoding.net/android-mysql-tutorial-to-perform-basic-crud-operation/ 开始了我的冒险之旅,我认为我完全理解了它,但是 运行 在尝试制作自己的 PHP [=47= 时犯了错误].
然后我去看了手册http://php.net/manual/fr/mysqli.prepare.php,但仍然找不到我的错误。
尽管它已关闭 "off-topic," 我已经查看 PHP bind_param not working 并没有发现任何适用于我的情况。
同样,我没有在 nor php bind_param is not working 中找到错误。
你非常接近。 mysqli_fetch_array()
期望传递一个 result 对象,而不是语句对象本身:
$stmt = $conn->prepare(...);
$stmt->bind_param(...);
$stmt->execute();
$result = $stmt->get_result();
while ($row = mysqli_fetch_array($result)) {
或者,以完全面向对象的方式:
while ($row = $result->fetch_array()) {
我正在尝试使用 PHP 中的准备语句在 table 中搜索特定项目。我没有收到任何错误,但也没有收到任何记录。这是我的代码:
$items = [];
$search = "john";
if ($stmt = $this->con->prepare("SELECT * FROM phptest WHERE search = ?")) { //'john'";
$stmt->bind_param("s",$search);
$stmt->execute();
while ($row = mysqli_fetch_array($stmt)) {
$item = [];
$item['id'] = $row['id'];
$item['first'] = $row['search'];
$item['last'] = $row['data'];
array_push($items, $item);
}
}
return $items;
现在,当我 不 使用准备好的语句时,仅 SELECT * FROM phptest
我得到 table 中的所有结果(包括项目其中搜索 = 'john')。此外,如果我使用查询 SELECT * FROM phptest WHERE search = 'john'
我会得到一条记录,其中 search = 'john'
但是一旦我把它变成准备好的语句,我得到零错误但零记录。我 收到警告:
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given
这让我觉得我的 bind_param
或 execute()
返回了 FALSE,但当我检查时,它似乎没有返回 false。
我通过教程 https://www.simplifiedcoding.net/android-mysql-tutorial-to-perform-basic-crud-operation/ 开始了我的冒险之旅,我认为我完全理解了它,但是 运行 在尝试制作自己的 PHP [=47= 时犯了错误].
然后我去看了手册http://php.net/manual/fr/mysqli.prepare.php,但仍然找不到我的错误。
尽管它已关闭 "off-topic," 我已经查看 PHP bind_param not working 并没有发现任何适用于我的情况。
同样,我没有在
你非常接近。 mysqli_fetch_array()
期望传递一个 result 对象,而不是语句对象本身:
$stmt = $conn->prepare(...);
$stmt->bind_param(...);
$stmt->execute();
$result = $stmt->get_result();
while ($row = mysqli_fetch_array($result)) {
或者,以完全面向对象的方式:
while ($row = $result->fetch_array()) {