pdo Не работает insert запрос к БД
Пишу бота в телеграм (предлагает пройти анкету) на вебхуках. state - это позиция человека по анкете, нужная мне (число от 0 до 6). Табличка в базе устроена до жути просто - там данные человека, от chatid, до желаемой профессии. Как вы видите, я делаю построчный возврат полученных элементов в нужных мне местах. Все, что выводит мне бот в трассировке - это "state после селекта =" (Таблица пока пустая). Проблема - Не выполняется INSERT на PDO (Код в комментарии на процедурном стиле работает)
$sth = $db->prepare('SELECT state FROM users WHERE chatid=?');
$sth->execute(array($chat));
$state = $sth->fetch();
$telegram->sendMessage([ 'chat_id' => $chat, 'text' => 'state после селекта = '.$state ]); //
file_put_contents($chat.'.txt', $text . PHP_EOL, FILE_APPEND);
if (empty($state))
{
$state = '0';
/* $sql = "INSERT INTO users SET state ='".$state."', chatid = '".$chat."' ";
$query = mysqli_query($bd,$sql);
if ($query)
{
$telegram->sendMessage([ 'chat_id' => $chat, 'text' => 'sql = '.$sql ]);
}
else{
$telegram->sendMessage([ 'chat_id' => $chat, 'text' => 'sql = '.$sql ]);
}*/
$sql = "INSERT INTO users (chatid,state) VALUES (?,?)";
$pdo->prepare($sql)->execute([$chat,$state]);
}
$telegram->sendMessage([ 'chat_id' => $chat, 'text' => 'state = '.$state ]); //
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Как верно заметил @mike я подключил базу как $db, а обращался к ней как $pdo, правильное обращение исправило проблему.