mysqli execute() 成功执行但未获取记录[重复]
Posted
技术标签:
【中文标题】mysqli execute() 成功执行但未获取记录[重复]【英文标题】:mysqli execute() executing successfully but is not fetching the records [duplicate] 【发布时间】:2013-03-16 01:34:56 【问题描述】:我正在使用 mysqli 执行选择查询 ...
/** ------------ queries ---------- **/
$stmt = $mysqli->prepare("SELECT * FROM dept");
if(! $stmt)
echo "statement not prepared well";
else
echo $mysqli->error;
if (!$stmt->execute())
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
// add else
else
echo "Query is successfully executed but no result fetch";
if (!($res = $stmt->get_result()))
echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
/** ------------------------------- **/
#------result ----
var_dump($res->fetch_all());
#---------(/result)----
我的问题是 execute() 工作正常,但无法获取记录...该表中有大量数据...它显示“查询已成功执行但未获取结果”,然后@ 987654322@
我做错了什么..?
【问题讨论】:
【参考方案1】:我做错了什么..?
您使用的是 mysqli 而不是 PDO
您的整个代码可以使用 PDO 用这几行代码重写:
$stmt = $pdo->prepare("SELECT * FROM dept");
$stmt->execute();
var_dump($stmt->fetchall());
没有那么多if
和echo
。
当您从准备好的语句开始时,差异会更大
【讨论】:
【参考方案2】:打破以下
if (!($res = $stmt->get_result()))
到
$res = $stmt->get_result();
if( !$res )
或者说是
$res = $stmt->get_result();
if( $res->num_rows == 0 )
错误(我之前没有注意到)是因为
mysqli_stmt::get_result() 仅适用于
mysqlnd
。
您需要按照guidelines here 安装/配置它。
【讨论】:
试过但没有改变.. @new_developer 检查新的编辑。 非常感谢它现在的工作......以上是关于mysqli execute() 成功执行但未获取记录[重复]的主要内容,如果未能解决你的问题,请参考以下文章
关于Alwayson创建维护计划后,备份执行成功但未看到备份文件的原因