我使用xampp在localhost中创建了一个网站。 现在我把它放在服务器中,没有任何工作了。
本地主机:
$on124 = $mysqli_link->prepare("select * from online where ip=? order by id desc LIMIT 1");
$on124->bind_param('s', $ip);
$on124->execute();
$result_on124 = $on124->get_result();
$sb4154 = $result_on124->num_rows;
$on124->close();
get_result不起作用,所以我读到我需要更改为bind_result:
$on124 = $mysqli_link->prepare("select id, ip, hora from online where ip = ? order by id desc LIMIT 1");
$on124->bind_param('s', $ip);
$on124->execute();
$result_on124 = $on124->bind_result($id, $ip, $hora);
$sb4154 = $result_on124->num_rows;
$on124->close();
但它给了我这个:
错误:警告:mysqli_stmt :: bind_result()[mysqli-stmt.bind-result]: 绑定变量的数量与预准备语句中的字段数不匹配。
有什么问题?
答案 0 :(得分:1)
出于您的目的,get_result()
是不必要的。您不需要创建新变量来包含bind_result()
。
而不是这个,
$result_on124 = $on124->bind_result($id, $ip, $hora);
试试这个
$on124->bind_result($id, $ip, $hora);
您的新变量$id, $ip, $hora
现在可以使用了。
另外,为了能够从准备好的语句中获取num_rows
,您需要存储结果,如此
$on124->store_result();
在致电num_rows
您也可以在以后使用
释放这些内容$on124->free_result();
- 编辑澄清 - 这是完整的事情
$on124 = $mysqli_link->prepare("select id, ip, hora from online where ip = ? order by id desc LIMIT 1");
$on124->bind_param('s', $ip);
$on124->execute();
$on124->bind_result($id, $ip, $hora);
$on124->store_result();
$sb4154 = $on124->num_rows;
$on124->fetch();
$on124->free_result();
$on124->close();