fdf*_*dfd 1 php mysqli count fetch
我在从 MYSQL 切换到 MYSQLi 时遇到问题。这些代码在 MYSQL 中运行良好,但是当我将连接更改为 MYSQLi 时,我在获取查询时收到了上述错误。如何使用 mysqli 函数获取我的查询?
代码:
function __construct(){
$this->link = mysqli_connect('localhost', 'root', '', 'ajax_rating');
if (!$this->link) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . mysqli_get_host_info($this->link) . "\n";
}
function getItems($id = null){
if(isset($_GET['id']))
{
$query = $this->link->query("SELECT * FROM items WHERE id = '$id'");
}
else
{
$query = $this->link->query("SELECT * FROM items");
}
$rowCount = $query->rowCount();
if($rowCount >= 1)
{
$result = $query->fetchAll();
}
else
{
$result = 0;
}
return $result;
Run Code Online (Sandbox Code Playgroud)
用 num_rows
所以最终的答案是
function getItems($id = null)
{
if(isset($_GET['id']))
{
$query = $this->link->query("SELECT * FROM items WHERE id = '$id'");
}
else
{
$query = $this->link->query("SELECT * FROM items");
}
$rowCount = $query->num_rows;//change here
if($rowCount >= 1)
{
$result = $query->fetchAll();
}
else
{
$result = 0;
}
return $result;
}
Run Code Online (Sandbox Code Playgroud)
编辑 01
使用mysqli_fetch_all代替fetchAll()
mysqli_fetch_all($query,MYSQLI_ASSOC);
Run Code Online (Sandbox Code Playgroud)
所以回答世界是
if($rowCount >= 1)
{
$result = mysqli_fetch_all($query,MYSQLI_ASSOC);
}
Run Code Online (Sandbox Code Playgroud)