Возможно, кодировка файла со скриптом и кодировка, в которой приходят данные из формы в $_POST отличаются. То есть когда ты прописываешь руками в файле свой $title - то запрос уходит в кодировке файла и именно в такой кодировке хранится значение в базе данных. И, соответственно, нужная строка находится. А из формы данные, возможно, приходят в какой-то другой кодировке, и когда ты подставляешь их в запрос, то ничего не находится. Это просто предположение. Не факт, что дело в этом. Игорь уже много раз посоветовал тебе проверить запрос, который составляется и что он возвращает. Код (PHP): $sql = "SELECT * FROM `polls` WHERE title = '$title'"; var_dump($sql); $res = $mysqli->query($sql); var_dump($res); $row = $res->fetch_row(); var_dump($row); $poll_id = $row[0]; if (!$res) { echo "Errormessage: %s\n", $mysqli->error; } И ещё, чтобы получить id добавленной записи - вовсе не обязательно делать ещё отдельно SELECT-запрос. Для этого есть свойство http://php.ru/manual/mysqli.insert-id.html , которым можно воспользоваться сразу после INSERT-запроса. Код (PHP): $mysqli->query("INSERT INTO `polls` (title) VALUES ('$title')"); $poll_id = $mysqli->insert_id;