我正在更新我的PHP代码从MySQL到mysqli,但我似乎无法找到这个问题的答案:做mysqli更新查询返回结果?如果mysqli更新查询返回结果?
与MySQL,我可以做
$result = mysql_query("UPDATE `data` SET `field1` = 1 WHERE `key` = '$mykey');
和$结果将是真实的,即使查询不返回任何行。
但现在,在mysqli的代码,我有这样的事情(错误处理为清楚起见移除):
$stmt = $mysqli->prepare("UPDATE `data` SET `field1` = 1 WHERE `key` = (?)")
$stmt->bind_param("s", $mykey);
$stmt->execute();
$result = $stmt->get_result();
和$结果是假的。
对于记录来说,查询是有效的(忽略任何可能使拼写转换为堆栈溢出的拼写错误),并且field1在数据库中按预期正确更新。此外,get_result()对于选择查询工作正常,所以它不是get_result()不可用的问题。
基本上,我只是想知道,如果这种变化的行为是预期的,或者如果我应该继续尝试找到某个地方的错误。
好的...评论似乎已经消失,告诉我检查文档,确实声明get_result“返回结果集或失败时返回FALSE”。 但是,在提出我的问题之前,我已经阅读过了,如果文档是准确的,我想我只是好奇。 $ stmt-> get_result()返回false后,我检查了$ stmt-> errno(这是0)和$ stmt-> error(这是空白),并且查询似乎成功执行(因为数据库已更新)。那么这个错误发生在哪里? – Swiftheart 2013-02-16 07:42:49