Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как подготовить URL для запроса?
 
 автор: lgar   (16.02.2012 в 16:19)   письмо автору
 
 

Хочу внести в базу данных из формы URL, но получаю синтаксическую ошибку.

Например:
http://test.domain.com/8.php

Какими функциями надо подготовить url для запроса в БД?

У меня:

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 '://test.domain/8.php, NULL)' at line 1

mysql_escape_string($_POST['url']);

  Ответить  
 
 автор: Киналь   (16.02.2012 в 16:35)   письмо автору
 
   для: lgar   (16.02.2012 в 16:19)
 

Дело не в URL'е, а в том, что заносимые в базу значения полей нужно заключать в одинарные либо обратные кавычки. Приведите текст запроса, вызвавшего ошибку, покажу вам, что я имею в виду.

  Ответить  
 
 автор: lgar   (16.02.2012 в 16:41)   письмо автору
 
   для: Киналь   (16.02.2012 в 16:35)
 

mysql> INSERT INTO test2012 (id, datetime, status, url) VALUES (2012020390, 138000, NULL, http://yandex.ru/search.php);
ERROR 1064 (42000): 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 '://yandex.ru/search.php)' at line 1
mysql>  

mysql> INSERT INTO test2012 (id, datetime, status, url) VALUES (2012020390, 138000, NULL, 'http://yandex.ru/search.php');
ERROR 1054 (42S22): Unknown column 'url' in 'field list'
mysql>  

mysql> INSERT INTO test2012 (id, datetime, url, status) VALUES (2012020390, 138000, 'http://yandex.ru/search.php', NULL);
ERROR 1054 (42S22): Unknown column 'url' in 'field list'
mysql>  



Я так понял с '' запрос выполняется, но найти столбец не может.

  Ответить  
 
 автор: Киналь   (16.02.2012 в 16:48)   письмо автору
 
   для: lgar   (16.02.2012 в 16:41)
 

>Я так понял с '' запрос выполняется, но найти столбец не может.

Правильно поняли. Такой столбец точно есть?

  Ответить  
 
 автор: lgar   (16.02.2012 в 16:55)   письмо автору
 
   для: Киналь   (16.02.2012 в 16:48)
 

Спасибо, нет такого столба нету, я не в той таблице создал.

Вот так работает :-)

mysql_query("INSERT INTO test (id, datetime, url, status) VALUES ($id, $datetime, '$url', $status);");

Сразу спрошу

<textarea name=message cols=22 rows=12></textarea>


Такое какими функциями готовить для добавления в БД?

  Ответить  
 
 автор: Киналь   (16.02.2012 в 16:59)   письмо автору
 
   для: lgar   (16.02.2012 в 16:55)
 

Экранируйте (то есть закавычивайте) не только url, но вообще все значения полей. На будущее)

  Ответить  
 
 автор: Sfinks   (16.02.2012 в 20:35)   письмо автору
 
   для: Киналь   (16.02.2012 в 16:59)
 

Не нужно числовые поля закавычивать. Они медленнее работают.

  Ответить  
 
 автор: Киналь   (16.02.2012 в 17:07)   письмо автору
 
   для: lgar   (16.02.2012 в 16:55)
 

По второму вопросу начните с этой темы: http://softtime.ru/forum/read.php?id_forum=1&id_theme=84252

  Ответить  
 
 автор: NW   (16.02.2012 в 16:59)   письмо автору
 
   для: Киналь   (16.02.2012 в 16:48)
 

Ну вообще id огромное, тип столбца id должен быть bigint для таких чисел, поставьте поменьше значение id и все может получится

  Ответить  
 
 автор: Sfinks   (16.02.2012 в 16:59)   письмо автору
 
   для: lgar   (16.02.2012 в 16:41)
 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования