Mysql Не сохраняется строка в БД

Dimaz

Новичок
Всем привет. Получаю от клиента ответ с обычной строкой. Затем пытаюсь сохранить эту строку в БД. Выводит: Произошла какая-то ошибка при сохранении данных! Вот код:
PHP:
<?php
include("user_auth.php");
$user_id = (int)$_COOKIE['viewer_id'];
$str = $_POST['str'];

mysql_connect($db_host, $db_user, $db_pass);
mysql_set_charset("utf8");
mysql_select_db($db_name);

$m_query = mysql_query("SELECT * FROM `answers` WHERE `user_id` = '". $user_id ."'");
if(!mysql_fetch_array($m_query)) {
	$m_query = mysql_query("INSERT INTO `answers` (`user_id`, `answer_id`) VALUES (". $user_id .", ". $str .");");
	if($m_query) {
		echo("Результаты успешно сохранены!!!");
	}
	else {
		echo("Произошла какая-то ошибка при сохранении данных!");
	}
}
else {
	echo("Вы уже проголосовали!");
}
?>
Если прописать $str ="1234", сохраняет без проблем. В чем может быть загвоздка?
 

Dimaz

Новичок
Сделал. Теперь выводит:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!)' at line 1
 

Фанат

oncle terrible
Команда форума
что-то маловато выводит.
скажи честно, сколько букв по ссылке ты прочитал?
 

Dimaz

Новичок
Пункт второй при проблемах с MySQL. Вместо своего сообщения поставил
PHP:
echo mysql_error();
 

Dimaz

Новичок
Про запрос не понял. Как это вывести сам запрос, а не php код который его формирует?
 

Фанат

oncle terrible
Команда форума
Ты вообще в курсе, что такое SQL запрос? Как он выглядит? Какой запрос ты хочешь выполнить своим кодом?
 

Dimaz

Новичок
Так я же написал. Вот этот запрос не работает:
PHP:
$m_query = mysql_query("INSERT INTO `answers` (`user_id`, `answer_id`) VALUES (". $user_id .", ". $str .");");
Переменная $str содержит строку, так вот он не может записать ее в БД.
 

Фанат

oncle terrible
Команда форума
это не запрос. Это PHP код.
Ты представляешь себе, что такое SQL запрос?
 

Фанат

oncle terrible
Команда форума
ты писал, кстати, другой код. там сначала была какая-то переменная $z
 

Dimaz

Новичок
Да, забыл поменять. У меня в скрипте все правильно. Убрал функцию mysql_set_charset("utf8"). Теперь выводит: Unknown column 'Ïðèâåò' in 'field list'. Как это неизвестный столбец? Я же переменную не в списке столбцов прописываю, а в VALUES. Кстати эти кракозябры как раз и есть строка, которую я пытаюсь записать. Почему он ищет столбец с этой строкой не понимаю.
 

Dimaz

Новичок
Чего такой злой то? Можно по нормальному же ответить было.
 

Фанат

oncle terrible
Команда форума
Можно. Но ты ж не ответил.
Я тебя три раза просил запрос показать.

И это. Не видел ты злых ещё.
 

Dimaz

Новичок
Так где его взять, запрос этот? Сделал так:
PHP:
$m_query = mysql_query("INSERT INTO `answers` (`user_id`, `answer_id`) VALUES (". $user_id .", '$z');");
Правильно? Сейчас работает. Поставил переменную $z в одинарный кавычки и точки убрал.
 

Фанат

oncle terrible
Команда форума
понимаешь, какое дело.
Цель твоего кода - составить SQL запрос и выполнить его.
Но раз ты не можешь даже понять, где в твоем коде SQL запрос и как он должен выглядеть - значит, ты просто не понимаешь, что делаешь.
В этом случае у тебя никогда ничего не будет получаться.
программист всегда должен знать, что он делает.
Нет. Ты опять прочитал из всего текста только полторы строчки.
 

craz

Нестандартное звание
Так где его взять, запрос этот? Сделал так:
PHP:
$m_query = mysql_query("INSERT INTO `answers` (`user_id`, `answer_id`) VALUES (". $user_id .", '$z');");
Правильно? Сейчас работает. Поставил переменную $z в одинарный кавычки и точки убрал.
Я вот злой, а ты не понимаешь с 5 раз.
PHP:
$query = "INSERT INTO `answers` (`user_id`, `answer_id`) VALUES (". $user_id .", '$z');";
//echo $query;
$m_q = mysql_query($query);
Вот я злой) потому что это не ты понял и допер, а я тебе помог... И теперь ты снова остаешься со своим кодом и не умением разбираться и понимать.
 

Dimaz

Новичок
Так а что изменилось?) Кроме того, что сначала в переменную занес?
 

Фанат

oncle terrible
Команда форума
с помощью переменной ты сможешь увидеть SQL запрос. Впервые в жизни.
 
  • Like
Реакции: craz

craz

Нестандартное звание
Так а что изменилось?) Кроме того, что сначала в переменную занес?
тебе Фанат этот МЕГАХАК уже в 10 сообщениях пытается привить, а ты не можешь использовать код который тебе написали? Может ну его наф это пхп? Да и программирование...
 
Сверху