Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   sql запрос (https://forum.antichat.xyz/showthread.php?t=183162)

barnaki 01.03.2010 21:14

sql запрос
 
почему может не вставлять значения эта строка или все праильно ?
$insert_query = mysql_query('INSERT INTO guestbook (message,email,name,city) VALUES ($message,$email,$name,$city);');
if(!$insert_query) {echo "немогу добавить запись в базу данных";}

.:[melkiy]:. 01.03.2010 21:33

Цитата:

Сообщение от barnaki
почему может не вставлять значения эта строка или все праильно ?
$insert_query = mysql_query('INSERT INTO guestbook (message,email,name,city) VALUES ($message,$email,$name,$city);');
if(!$insert_query) {echo "немогу добавить запись в базу данных";}

PHP код:

$insert_query mysql_query("INSERT INTO `people` (`id`,`name`,`last_name`,`age`,`sity`) VALUES ('$id','$name','$last_name','$age','$sity')");
if(!
$insert_query) {echo "немогу добавить запись в базу данных"


Chubakur 01.03.2010 21:34

Цитата:

Сообщение от barnaki
почему может не вставлять значения эта строка или все праильно ?
$insert_query = mysql_query('INSERT INTO guestbook (message,email,name,city) VALUES ($message,$email,$name,$city);');
if(!$insert_query) {echo "немогу добавить запись в базу данных";}

имена переменных тоже должны быть в кавычках например:
$insert_query = mysql_query("INSERT INTO guestbook (message,email,name,city) VALUES (`".$message."`,"`.$email."`,`".$name."`,`".$city. "`)");
Вроде так. Честно, щас что-то не соображаю.
А вообще поставь echo и смотри как сформирован запрос.

wildshaman 01.03.2010 21:45

; между двумя скобками, имхо, лишняя

b3 01.03.2010 21:51

PHP код:

<?php
if(mysql_query("INSERT INTO guestbook (message,email,name,city) VALUES ('$message','$email','$name','$city');"))
echo 
"немогу добавить запись в базу данных";
?>


ZeroByte 02.03.2010 00:00

Может быть еще ситуация, когда поле ID (оно скорее всего в этой таблице тоже есть) сделано уникальным, а auto_increment не стоит.

P.S. этот пример скорее всего не работал из-за того, что нет кавычек

fokinkostya 03.03.2010 10:14

Потому что много ошибок.
Рекомендуется экранировать кавычками.

PHP код:

<?php
$query 
'INSERT INTO `guestbook` (`message`, `email`, `name`, `city`) VALUES ("'.$message.'", "'.$email.'", "'.$name.'", "'.$city.'")';
if (!
mysql_query($query)) {
    echo 
"не могу добавить запись в базу данных";
}
?>

Геморойно конечно ставить везде кавычки, но тогда проблем будет гораздо меньше. Экранирование ` используется только для имен таблиц, баз данных, ячеек. Двойные или одинарные кавычки используются для значений. ` - помогает избежать не желательного вызова служебных функций и т.п. Одинарные и двойные кавычки дают возможность вставки различных значений (нет пересечения с служебными функциями, при вставке значения с пробелом вставка будет происходить без ошибки и т.п.).

Опять же надо вырабатывать определенные правила для себя и определенный стиль форматирования.

Так же ошибка может происходить в случае, если в таблице есть поля, не указанные в запросе, для которых не указано значение по умолчанию.


Время: 02:24