编辑2 :我只是将我的PHP版本升级到php 5.5.15。我相信这个bug本身就是PHP本身。我发现这PHP bug看起来非常相似。有一个补丁可用,但我选择了一个简单的升级,而不是我想的修复。
编辑:当php遇到bind_result()时,我现在在cli中看到Segmentation fault (core dumped)
我在CentOS版本6.4(最终版)上运行PHP版本5.4.17,每当我使用bind_result方法运行或访问我的一个脚本时,程序就会在该特定行停止。这是我试图运行的脚本:
<?php
require('./connect.php');
global $db; //initialized in connect.php
$username = "testuser";
$email_in = "test@invalidemail.com";
$db -> select_db("mydb");
$query = "SELECT `Email`, `Password` FROM `users` WHERE `Username` = ? OR `Email` = ?";
$result = $db->prepare($query);
if($result->error == ""){
$result->bind_param('ss', $username, $email_in);
$result->execute();
echo "Show before bind\n";
try{
echo "going in";
$result->bind_result($dbemail, $dbpassword);
}catch(Exception $e){
echo "caught something";
var_dump($e);
}
echo "Show after bind\n";
$result->store_result();
$numrows = $result->num_rows;
}
$result->close();
$db->close();
?>
我得到的输出是:
Show before bind going in
除此之外,我有var_dumped所有重要的变量($ db $ result等),他们都看到准确并且没有错误。有趣的是,如果我更改bind_result行并将其放入var_dump,它会显示操作返回true并且脚本为CONTINUES!?并显示“绑定后显示”
改变使一切运转起来:
var_dump($result->bind_result($dbemail, $dbpassword));
如果我还原并使用php 5.3它可以正常工作,并且在使用localhost的MAMP上它也可以正常工作,即使使用PHP 5.4。
以前有人遇到过这个问题吗?如果是这样,你是如何设法解决它的?