2016-05-03 3 views
1

Я пытаюсь обновить SQL таблицу с помощью этого кода PHP:PHP MySQLi не может быть выполнена в настоящее время ошибка

$description = "Something about myself"; 
$insert = $con->prepare("INSERT INTO kys_write (Author, writing , Title , Description , Assets) VALUES (?,?,?,?,?)"); 
$insert->bind_param("ssssi",$author,$data,$title,$description, $ImageExist); 
$insert->execute(); 

$statement = $con->prepare("SELECT id FROM kys_write WHERE Title=?"); 
$statement->bind_param("s",$title); 
$statement->execute(); 
$statement->bind_result($lastId); 

//Everything works fine if this whole part is removed 
$sql = "UPDATE kys_essentials SET LastId=".$lastId; 
if ($con->query($sql) === TRUE) { 
    echo "Record updated successfully"; 
} else { 
    echo "Error updating record: " . $con->error; 
} 

Я получаю сообщение об ошибке:

Error updating records:Commands out of sync, you cannot run this command now.

Что вызывает это , и как я могу избежать этого?

+0

Возможного дубликат [PHP командами из синхронизации ошибок] (HTTP: //stackoverflow.com/questions/14554517/php-commands-out-of-sync-error) – e4c5

+0

Возможный дубликат [Команды не синхронизированы; вы не можете запустить эту команду сейчас] (http://stackoverflow.com/questions/614671/commands-out-of-sync-you-cant-run-this-command-now) –

+0

Я видел оба вышеперечисленных но это помогает! – Jois

ответ

1

Понятно, что результирующие наборы готового исполнения выполнения должны быть получены полностью перед выполнением другого подготовленного оператора в том же соединении.

Вы можете упростить код, используя один запрос. нет использования дополнительного запроса на выборку

$sql = "UPDATE kys_essentials SET LastId = (SELECT id FROM kys_write WHERE Title='$Title')"; 
if ($con->query($sql) === TRUE) { 
    echo "Record updated successfully"; 
} else { 
    echo "Error updating record: " . $con->error; 
} 
+0

Thankyou Я попробовал, но я получаю ошибку под названием check the manual, соответствующую вашему моему sql, для использования рядом с IN – Jois

+0

Добавить цитаты вокруг 'Title = '$ Title'' и chack – Saty

+0

nope sttill то же самое, что и синтаксическая ошибка, как раньше – Jois

0

не Принесите свой $lastId после связывания и поставить ' ' значения/с, как это:

//your codes 
$statement->bind_result($lastId); 

while ($statement->fetch()){ 
     $sql = "UPDATE kys_essentials SET LastId='".$lastId."'"; 
     if ($con->query($sql) === TRUE){ 
     echo "Record updated successfully"; 
     } else{ 
      echo "Error updating record: " . $con->error; 
     } 
}