我正在将我的PHP代码从mysql更新为mysqli,但我似乎无法找到这个问题的答案:mysqli更新查询是否会返回结果?
使用mysql,我可以做到
$result = mysql_query("UPDATE `data` SET `field1` = 1 WHERE `key` = '$mykey');
Run Code Online (Sandbox Code Playgroud)
即使查询没有返回任何行,$ result也是如此.
但是,现在,在mysqli代码中,我有类似的东西(为清晰起见,删除了错误处理):
$stmt = $mysqli->prepare("UPDATE `data` SET `field1` = 1 WHERE `key` = (?)")
$stmt->bind_param("s", $mykey);
$stmt->execute();
$result = $stmt->get_result();
Run Code Online (Sandbox Code Playgroud)
而$ result是假的.
对于记录,查询是有效的(忽略我可能已经将其转录到stackoverflow中的任何拼写错误)并且数据库中的field1按预期正确更新.此外,get_result()适用于选择查询,因此get_result()不可用.
基本上,我只是想知道这种改变的行为是否是预期的,或者我是否应该继续尝试在某处找到一些bug.
我不敢相信以前没有人问过这个问题,但这里是:
我正在尝试使用 WAMP 和 PHP 版本 5.3 在 Windows(64 位)上安装 xdiff。
pecl.php.net 不提供此组合的 .dll 文件,因此我尝试下载 5.3 x86 文件和 5.5 x64 版本,但都不起作用。x86 版本在 apache 日志中生成以下警告:
[Thu Jun 05 15:55:47 2014] [警告] Init:会话缓存未配置 [提示:SSLSessionCache] PHP 警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.3.13 /ext/php_xdiff.dll' - %1 不是有效的 Win32 应用程序。\r\n 位于第 0 行的未知
警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.3.13/ ext/php_xdiff.dll' - %1 不是有效的 Win32 应用程序。在第0行未知
x64 版本生成此警告:
[Thu Jun 05 15:58:16 2014] [警告] Init:会话缓存未配置 [提示:SSLSessionCache] PHP 警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.3.13 /ext/php_xdiff.dll' - 无法找到指定的模块。\r\n 位于第 0 行未知
警告 …