PHP:如何查找bind_result()收到的变量数

时间:2015-05-26 14:37:28

标签: php database

我不确定之前是否曾询问过,但我们如何知道bind_result()收到的参数数量?我试图从数据库加载数据并使用bind_param。但是,我收到了这个错误:

  

警告:mysqli_stmt :: bind_result():绑定变量数没有   匹配C:\ path on line

中预准备语句中的字段数

以下是我的代码片段:

$id =1;
if($stmt=$conn->prepare("SELECT * FROM TABLE_A WHERE ID=?")){
    $stmt->bind_param('i', $id);
    $stmt->execute();
    $stmt->bind_result($result_id, $b, $c,
        $d, $e, $f, $g,
        $h);

bind_result中的参数数量与TABLE_A中的列数相同。非常感谢帮助。谢谢!为^ U ^

1 个答案:

答案 0 :(得分:0)

根据函数bind_result的PHP手册中的this comment,仅当您指定了准备中的所有列时,才可以使用预准备语句。言。

当您使用SELECT * FROM准备语句时,PHP不知道结果列的数量(您可以通过仅使用一个列变量尝试bind_result来检查是否为真,并查看它是否成功)

因此,您必须在预准备语句中命名所有列(SELECT name,addr,col3, ...)或使用上述注释中的变通方法 - 使用call_user_func_arrayresult_metadata创建自己的函数来获取返回的列的名称和计数。