我正在从 mysql_ 转换为 mysqli。做一些教程。尽管阅读和谷歌搜索该主题,但并没有取得太大的成功。我尝试了一个准备好的语句,但它一直输出 0 个结果(即 now_rows =0 )。当我手动查询 mySQL 表时,会返回许多结果。
mySQLI 5.0.96 已启用
<?
include("conn.php");
// SELECT sql query
$sql = "SELECT id, rotation, assignedRad FROM sched_main WHERE thedate = ?";
// perform the query and store the result
$query = $conn->prepare($sql);
$thedate='2013-01-02';
$query->bind_param('s', $thedate);
$query->execute();
// if the $query contains at least one row
if ($query->num_rows > 0) {
// output data of each row from $query
while($row = $query->fetch_assoc()) {
echo '<br /> id: '. $row['id']. ' - name: '. $row['rotation']. ' - pass: '. $row['assignedRad'];
}
$query->free();
}
else {
echo '0 results';
}
?>
问题2:有没有简单的方法来调试mysqli?使用 mysql_query 我会简单地回显 $sql; 看看 SELECT 语句在我的调试过程中是什么样子的。提前致谢
更新:
这是更新代码的片段,如下所示:
$query->bind_param('s', $thedate);
if (!$query->execute()) {
die($conn->error);
}
$query->store_result();
// if the $query contains at least one row
if ($query->num_rows > 0) {
// output data of each row from $query
while($row = $query->fetch()) {
echo '<br /> id: '. $row['id']. ' - name: '. $row['rotation']. ' - pass: '. $row['assignedRad'];
}
$query->mysqli_free();
}
else {
echo '0 results';
}
现在它以数组 $row 值作为无值输出:
id: - name: - pass:
id: - name: - pass:
id: - name: - pass:
.. ETC...
我也收到致命错误:调用未定义的方法 mysqli_stmt::mysqli_free()
当我尝试 free() 时,我得到:致命错误:调用未定义的方法 mysqli_stmt::free()