Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка в SQL запросе (

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
event
Отправлено: 11 Февраля, 2012 - 20:11:03
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Привет, где я накосячил?
PHP:
скопировать код в буфер обмена
  1. function sqlesc($value) {
  2.         // Stripslashes
  3.    /*if (get_magic_quotes_gpc()) {
  4.            $value = stripslashes($value);
  5.    }*/
  6.    // Quote if not a number or a numeric string
  7.    if (!is_numeric($value)) {
  8.            $value = "'" . mysql_real_escape_string($value) . "'";
  9.    }
  10.    return $value;
  11. }
  12.  
  13. $result = sql_query("INSERT INTO persons (id, added, person_name, birthday, gender, additionally, owner, website) VALUES ($id, $added, " . sqlesc($person_name) . ", " . sqlesc($$person_birthday) . ", " . sqlesc($person_gender) . ", " . sqlesc($person_additionally) . ", " . sqlesc($CURUSER['id']) . ", " . sqlesc($person_website) . ")") or sqlerr(__FILE__, __LINE__);


Возвращает:
CODE (text):
скопировать код в буфер обмена
  1. Ошибка в SQL
  2. Ответ от сервера MySQL: 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 ' 'Тестовый ............', '', 2, 'Тестовый ............Тестовый ............Тест' at line 1
  3.  
  4. в C:\AppServ\www\persons.php, линия 241
  5.  
  6. Запрос номер 6.
Огорчение

(Отредактировано автором: 11 Февраля, 2012 - 20:11:26)

 
 Top
PATCH
Отправлено: 11 Февраля, 2012 - 20:15:54
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. " . sqlesc($$person_birthday) . "
замени на
CODE (html):
скопировать код в буфер обмена
  1. " . sqlesc($person_birthday) . "

(Отредактировано автором: 11 Февраля, 2012 - 20:16:13)

 
 Top
event
Отправлено: 11 Февраля, 2012 - 20:26:41
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




PATCH пишет:
$$

Сделал, теперь:
CODE (text):
скопировать код в буфер обмена
  1. Ошибка в SQL
  2. Ответ от сервера MySQL: 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 ' 'ame person - * ame person - * ame person - * ame person - * ', '1923.06.07' at line 1
  3.  
  4. в C:\AppServ\www\persons.php, линия 241
  5.  
  6. Запрос номер 6.
 
 Top
PATCH
Отправлено: 11 Февраля, 2012 - 20:35:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




типы полей в студию.
 
 Top
event
Отправлено: 11 Февраля, 2012 - 20:49:54
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




[quote=PATCH][/quote]

`id` int(10) unsigned NOT NULL auto_increment,
`added` datetime NOT NULL default '0000-00-00 00:00:00',
`person_name` varchar(40) NOT NULL,
`image1` text NOT NULL,
`image2` text NOT NULL,
`image3` text NOT NULL,
`image4` text NOT NULL,
`birthday` date default '0000-00-00',
`gender` enum('1','2','3') NOT NULL default '1',
`biography` text NOT NULL,
`additionally` text NOT NULL,
`website` varchar(50) NOT NULL default '',
`owner` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`person_name`),
KEY `added` (`added`)
 
 Top
OrmaJever Модератор
Отправлено: 11 Февраля, 2012 - 21:14:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Просто значения нужно брать в кавычки.
PHP:
скопировать код в буфер обмена
  1. $result = sql_query("INSERT INTO persons (id, added, person_name, birthday, gender, additionally, owner, website) VALUES ('$id', '$added', '" . sqlesc($person_name) . "', '" . sqlesc($person_birthday) . "', '" . sqlesc($person_gender) . "', '" . sqlesc($person_additionally) . "', '" . sqlesc($CURUSER['id']) . "', '" . sqlesc($person_website) . "')") or sqlerr(__FILE__, __LINE__);

вроде везьде поставил


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
event
Отправлено: 11 Февраля, 2012 - 21:22:57
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




OrmaJever пишет:
Просто значения нужно брать в кавычки.
PHP:
скопировать код в буфер обмена

$result = sql_query("INSERT INTO persons (id, added, person_name, birthday, gender, additionally, owner, website) VALUES ('$id', '$added', '" . sqlesc($person_name) . "', '" . sqlesc($person_birthday) . "', '" . sqlesc($person_gender) . "', '" . sqlesc($person_additionally) . "', '" . sqlesc($CURUSER['id']) . "', '" . sqlesc($person_website) . "')") or sqlerr(__FILE__, __LINE__);


вроде везьде поставил


Ничего не изменилось:

Ошибка в SQL
Ответ от сервера MySQL: 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 'Name person - *'', ''1922.04.03'', '2', ''Name person - *Name person - *Name per' at line 1

в C:\AppServ\www\persons.php, линия 241

Запрос номер 6.
(Добавление)
Сделал так:
PHP:
скопировать код в буфер обмена
  1. $result =  sql_query("INSERT INTO persons (id, added, name, birthday, gender, biography, additionally, website, owner) VALUES (".implode(",",array_map("sqlesc",array($id, $added, $person_name, $person_birthday, $person_gender, $person_biography, $person_additionally, $person_website, $CURUSER['id'] ))).")");


вроде без ошибок. Улыбка
 
 Top
OrmaJever Модератор
Отправлено: 11 Февраля, 2012 - 22:49:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




ой, я не заметил что в функции уже кавычки ставятся


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
PATCH
Отправлено: 11 Февраля, 2012 - 22:52:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




OrmaJever пишет:
ой, я не заметил что в функции уже кавычки ставятся
ставятся если строка не число ) а если число то кавычки не ставятся) у него в функции.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB