我正在尝试从MySql转换为MySqli。我不知道为什么这不起作用,而且我看起来完全没问题。
$link = mysqli_connect('localhost', 'username', 'password', 'db_name') or die("Error " . mysqli_error($link));
$sql = "SELECT COUNT(*) \"total\" FROM forum_topic WHERE thread_id";
$queryResult = mysqli_query($link,$sql);
$row = mysqli_fetch_array($queryResult);
$total = $row['total'];
$max_limit = 10;
$total_page = ceil($total/$max_limit);
$current_page = (isset($_GET['page']))?$_GET['page']:1;
$start_point = ($current_page-1) * $max_limit;
问题就像 mysqli_fetch_array()期望参数1是mysqli_result,布尔值在
中给出我可能会遗漏一些东西。这是mysqli_fetch_array
的错误。并且错误显示布尔值,我不知道为什么它不起作用。有任何想法吗?谢谢。感谢您的回答。
答案 0 :(得分:1)
执行查询时,请检查它是否已正确执行或查询是否有错误。 $ sql_query =“select * from some_table”;
$q_res = mysqli_query($link, $sql_query);
if($q_res){
//Perform mysqli_fetch_array() here.
}else{
die(mysqli_error($link));
}
答案 1 :(得分:0)
理论上......
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT COUNT(*) total FROM forum_topic WHERE thread_id";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
$total = $row['total'];
}
/* free result set */
mysqli_free_result($result);
}
/* close connection */
mysqli_close($link);
?>
...将得到$ total。
答案 2 :(得分:0)
如果您没有任何条件,那么为什么要在查询中放置WHERE
子句。将\"total\"
替换为“total”。您的简单查询应该是这样的,不会给您任何错误。
$sql = "SELECT COUNT(*) AS `total` FROM forum_topic";