@barder

Как мне удалить запись из MYSQL с помощью PHP?

Привет всем.
Есть php код которой в одной таблице обновляет запись, а в другой удаляет.
if ($id_primer == 0 && $waiting = "waiting_name") {
			$sql = "";          // здесь формируем строку мультизапроса
			$sql .= 'SET NAMES utf8;';
			$sql .= 'UPDATE user SET name="'.$data['message']['text'].'", status="1" WHERE chat_id='.$chat_id;

			$resultname = $mysqli->multi_query($sql);
			$sqlres = 'DELETE FROM logic WHERE chat_id='. $chat_id;
			if ($mysqli->query($sqlres) === TRUE) {
			sendTelegram(
					'sendMessage', 
					array(
						'chat_id' => $chat_id,
						'text' => $data['message']['text'] . ", отлично, темерь можем начать игру.\n Для получения доступных команд набери /help"
					)
					);
			exit();
		}


UPDATE срабатывает, а вот DELETE выдает ошибку:
Error deleting record: Commands out of sync; you can't run this command now

Нигде не могу найти в чем проблема, нашел на англ язычных типа запрос нельзя делать после мультизапроса, но я пробывал и так:
$sql = "";          // здесь формируем строку мультизапроса
$sql .= 'SET NAMES utf8;';
$sql .= 'UPDATE user SET name="'.$data['message']['text'].'", status="1" WHERE chat_id='.$chat_id;
$sql .= 'DELETE FROM logic WHERE chat_id='. $chat_id;
$resultname = $mysqli->multi_query($sql);

ошибку не выдает заходит в условие:
if ($mysqli->multi_query($sql) === TRUE) {
}
получается запрос выполнен.
Сразу объясню почему мультизапрос на обновление имени, имя могут задать русскими буквами, и в бд записывается кракозябра, пришлось делать мульти с кодировкой.
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@FanatPHP
Чебуратор тега PHP
Сразу объясню почему мультизапрос

господи, сон разума рождает чудовищ.

мысль выполнить SET NAMES отдельным запросом тебе в голову не приходила?
если уж ты не осилил сделать это правильно, черех mysqli_set_charset()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы