大佬教程收集整理的这篇文章主要介绍了PHP Mysqli语句返回单行,受影响的是-1行,并且没有错误,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这真令人困惑,我必须缺少一些简单的东西.我有一个查询,检查要插入的事务是否已经存在,以防止重复.这是代码:
function isaDupe($portableDB, $transactArray)
{
$ref = $transactArraY["reference"];
$date = $transactArraY["qdate"];
$time = $transactArraY["time"];
//prints the query so I can run by hand to test
print "SELECT `counter` FROM transactions WHERE (`reference` = '$ref' AND `qdate` = '$date' AND `time` = '$time') ";
if ($dupeSELEctStmt = $portableDB->prepare("SELECT `counter` FROM transactions WHERE (`reference` = ? AND `qdate` = ? AND `time` = ?)"))
{
$dupeSELEctStmt->bind_param('sss',$ref, $date, $timE);
$dupeSELEctStmt->bind_result($counter);
$dupeSELEctStmt->execute();
while ($dupeSELEctStmt->fetch())
{
break;
}
$numRows = $portableDB->affected_rows;
if ($numRows > 0)
return TRUE;
else if ($numRows == -1)
{
print " ERROR: ";
print_r($portableDB->error);
print_r($dupeSELEctStmt->error);
return falSE;
}
else
return falSE;
}
}
-如果我通过同一服务器上的Workbench手动运行查询,则会返回24行.
-如果我手动准备,设置和执行语句,这是相同的.
-affected_rows返回-1
-如果我在语句上执行num_rows则相同
-我试过分别使用每个变量运行它,同样的事情.
-同一台服务器(heck,同一MysqLi对象)上的其他查询工作正常.选择,更新和插入.
解决方法:
答案是我忘记了在MysqListmt :: execute()之后调用MysqListmt :: store_result.
添加$dupSELEctStmt-> store_result()后,我能够调用$dupSELEctStmt-> num_rows和$portableDB-> affected_rows,它们都显示了我知道应该看到的24个字符.
以上是大佬教程为你收集整理的PHP Mysqli语句返回单行,受影响的是-1行,并且没有错误全部内容,希望文章能够帮你解决PHP Mysqli语句返回单行,受影响的是-1行,并且没有错误所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。