我正在编写一个需要连接mysql的php程序。 所以我尝试使用mysqli。但正如标题所说,我得到了一个问题。 细节是这样的:
<?php
....
$mysqli = new mysqli(HOST,USER,PASSWORD,DATABASE);
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$sql = "update dsagencyinfo set Company='a', Region='b', AgencyName='c', HeadAgencyCode='71u269', AgencyFlag='4850G', AgencyStarts='dd', AgencyAttr='e', AgencyType='test', AgencyAddr='f1', AgencyPhoto='ss', HouseAttr='f', HouseArea='60', DecorationDate='41183', CounterNumber='6', CounterNumberLT='2', CounterNumberYD='5', OperatorName='dd', OperatorTel='18607277068', ClerkNumber='1', AdminName='ff', AdminTel='1860727123', CreateTime=now() where AgencyCode=36578689 ";
if($mysqli->query($sql)){
if($mysqli->affected_rows == 1){
return true;
}else{
return false;
}
}
?>
但是我发现$mysqli->affected_rows
返回-1,也就是说,这个sql应该有问题,所以我得到$mysqli->errno
的值,但它返回0表示有没有错误发生!而且,$mysqli->error
也会返回“”。
然后我输入这个sql到mysql(我使用phpmyadmin),执行它,mysql说它没关系,我在数据库中检查,这个数据确实更新了。
我无法理解为什么$mysqli->affected_rows
返回-1,我该如何解决这个问题?
我的PHP版本是5.4.12 MySQL版本:5.6.12
答案 0 :(得分:1)
似乎对象$ mysqli在输入条件之前没有得到结果。尝试:
if($mysqli = $mysqli->query($sql)){
if($mysqli->affected_rows == 1){
return true;
}else{
return false;
}
}
或者从$ mysqli-&gt; query()条件中获取它。
$mysqli->query($sql);
if($mysqli->affected_rows == 1){
return true;
} else {
return false;
}