bind_result mysqli无法正常工作

时间:2015-08-28 14:00:13

标签: php mysqli

我使用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]:   绑定变量的数量与预准备语句中的字段数不匹配。

有什么问题?

1 个答案:

答案 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();