mysqli_ ошибка при попытке закрыть соединение

Я пытаюсь очистить запрос MySQL после вызова процедуры. Вот мой код:

$mysqli=new mysqli($mysql_host,$mysql_user,$mysql_password,$mysql_db);
if ($mysqli->connect_error)
{
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
$mysqli->query("SET NAMES UTF8");
echo"blockSeparate";
$_POST['address']='Str';
if($clientIntercome=$mysqli->prepare("CALL mbusGetClientIntercomeByAddress(?)"))
{
$clientIntercome->bind_param("s",$_POST['address']);
$clientIntercome->execute();
$clientIntercome->bind_result($id,$flat,$phone,$redirectPhone);
while($clientIntercome->fetch())
{
echo"".$id." ".$flat." ".$phone." ".$redirectPhone."\n";
}
}
else
{
echo"SMTH is wrong";
}
$clientIntercome->close();
while(true)
{
echo"WORKS";
$mysqli->store_result();
if (!$mysqli->more_results())
{
break;
}
if (!$mysqli->next_result())
{
break;
}
}
echo"blockSeparate";
if($clientKeys=$mysqli->prepare("CALL mbusGetClientKeys(?)"))
{
echo"Here works too";
$clientKeys->bind_param('i',1);
$clientKeys->execute();
$clientKeys->bind_result($rf_id,$phone);
while($clientKeys->fetch())
{
echo"".$rf_id." ".$phone."\n";
}
//$clientKeys->close();
}
else
{
echo$mysqli->error;
}
$mysqli->close();

Я инициирую $_POST['address'] чтобы проверить этот скрипт на сервере, обычно я использую его через ajax.

var address=$("#cfgAddress").val();
var data={address:address};
$.ajax(
{
type: "POST",
url: "./getUserFlatPhone.php",
data: data,
success: function(data, textStatus, jqXHR)
{
console.log(data);
//some work
}
});

Если я попытаюсь сделать это с uncommented strng, он вернет внутреннюю ошибку сервера PHP, однако, если это закомментировано, ошибки нет, но следующий запрос вернет запятую из-за ошибки синхронизации. Однако этот код (пока цикл для пустого вызова процедуры MySQL) прекрасно работает в моем приложении. Также, если я запускаю его в браузере не через jquery, он не возвращает ошибку, но не публикует результаты.
РЕДАКТИРОВАТЬ: измененная закомментированная строка, которая не работает

-1

Решение

  1. Используйте исключения, чтобы получить точную ошибку / проблему.
  2. Используйте Close (), чтобы завершить только соединение mysqli.

Попробуй это: http://pastebin.com/SsYHsALL

0

Другие решения

Эта строка не mysqli подключение. Так что не мы close() в теме. Вместо этого удалите его.

$clientIntercome->close();

Эта строка в правильный способ закрыть соединение в соответствии с руководством:

$mysqli->close();
0

По вопросам рекламы [email protected]