【发布时间】:2016-10-06 09:41:40
【问题描述】:
我正在将我的网站转换为准备好的语句(在我只是依赖一个包含 mysqli_real_escape_string 等的自定义函数之前),但是当我运行代码时,我总是得到零记录。我知道 SQL 很好,因为我可以在 MySQL 工作台工具中运行 SQL,它会返回几条记录。这是我的代码:
<?php
$link = new mysqli($server,$dbusername,$dbpassword,$database);
if($link->connect_error){
die($link->connect_error);
}
$sql = "select itemname from items where itemcategory = ?";
//if(!$query = mysqli_query($link, $sql)) die(mysqli_error($link));
if(!$stmt = $link->prepare($sql)) die("Error");
$stmt->bind_param("i", $category); //replace question mark with category id
$stmt->execute();
$stmt->bind_result($itemname);
//$numitems = mysqli_num_rows($query);
$numitems = $stmt->num_rows;
if($numitems>0){
//while($array = mysqli_fetch_array($query)){
while($stmt->fetch()) {
echo $itemname."<br>";
}
}
$stmt->close();
?>
$stmt->num_rows 始终为 0。我做错了什么?
【问题讨论】:
标签: php mysql mysqli prepared-statement