1

下面是我用于从表中检索多个数据的函数的代码,但我想使用 bind_result($array[0],...,..) 根据我的字段数自动生成在查询中选择。

例如..

$query=select a,b,c,d,e from table;//selecting 5 fields
......
$stmt->execute();$stmt->bind_result($retrieve[0],$retrieve[1],$retrieve[2],$retrieve[3],$retrieve[4]);

(应该自动生成 5 个值的 bind_result)帮助将不胜感激......谢谢

$query="SELECT comment, userid,UNIX_TIMESTAMP(dtime)
                FROM comment_updates
                WHERE updateid=46546
                ORDER BY dtime DESC
                LIMIT 10 ";
        if($stmt = $this->conn->prepare($query)) {
            $stmt->execute();
            $stmt->bind_result($comments[0],$comments[1],$comments[2]);
            $i=0;
            while($stmt->fetch()){
            $i++;
            $name='t'.$i;
            $$name = array($comments[0],$comments[1],$comments[2]);
            }
            return array($i,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10);
            $stmt->close();
        }
4

1 回答 1

1

这应该让你开始:

http://php.net/manual/en/mysqli-stmt.result-metadata.php

这将通过 获得结果集中的字段数mysqli_num_fields()

这应该是$retrieve数组的大小。

由于bind_result不将数组作为参数,因此您需要使用call_user_func_array来实现此目的:

call_user_func_array(array($stmt, 'bind_result'), $retrieve_references);

$retrieve_references应该是对$retrieve. 使用$retrieve自身call_user_func_array会触发错误。

于 2009-07-06T20:41:08.440 回答