代码正在运行准备好的查询。代码或多或少看起来像这样:
$sth = $conn->prepare('select foo from bar');
$sth->execute();
$result = $sth->store_metadata(); // since prepared-query ...
$sth->store_result(); // returns TRUE = successful
echo $sth->num_rows(); // returns, say, '4'
$sth->data_seek(0); // gives warning
data_seek()
函数提供此警告:
mysqli_result::data_seek(): Function cannot be used with MYSQL_USE_RESULT
查看GitHub上的PHP源代码以及相关注释,看起来当结果为“未缓冲”时会生成此消息。
但是,在这一点上,我理解结果集应该被“缓冲”,因为我要求存储结果,store_result()
返回 true 表示成功。 (进一步证据是num_rows()
返回非零(实际上,正确......)结果。)
data_seek()
必须工作的这个(旧的,旧的)应用程序很重要。我以为我已经做好了一切。但是,我做错了什么? (使用未准备好的查询不是一种选择。)