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

Форум MySQL

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

 

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

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

тема: INSERT - страности...
 
 автор: moonfox   (26.11.2006 в 18:03)   письмо автору
 
 

привет!

у меня есть старый скрипт .. который работал под php 4.0.0..
недавно щзапустил его под 4.3.11 - и нонсанс не пашет!

решил посмотреть что за ерунда и вот чиго выходит...

в БД три колонки pole1 pole2 pole3...

$pole1="aaa";
$pole2="bbb";
$pole3="ccc";

$k="INSERT INTO g (pole1, pole2, pole3) VALUES (\"$pole1\", \"$pole2\",\"$pole3\")";
- этот код работает

$k="INSERT INTO g VALUES (\"$pole1\", \"$pole2\",\"$pole3\")";
- и тотт тоже..

а вот что было написано под 4.0.0

$k="INSERT INTO g (pole1, pole3) VALUES (\"$pole1\",\"$pole3\")";
- и оно не пашет!!! - блин как же тогда записывать выборочно .. как в примере - я хочу записать тока в поля 1 и 3 ... а нет! не пашет .. что за ерунда???!!!1

   
 
 автор: _Dreamer_   (26.11.2006 в 18:10)   письмо автору
 
   для: moonfox   (26.11.2006 в 18:03)
 

возможно что второе поле в таблице не имеет значения по умолчанию..
и собственно какие ошибки возникают и после чего? если после mysql_query($k) то что возращает mysql_error()?

   
 
 автор: XPraptor   (27.11.2006 в 00:42)   письмо автору
 
   для: _Dreamer_   (26.11.2006 в 18:10)
 

Все три записи разрешены в любой версии mySQL. Смотри с настройками PHP экранирования кавычек. Вообще пиши все операции с MySQL в одиночных кавычках. Имя полей pole1 pole3 не должны содержать пробелов. Так что твоя запись в правльном изложении допусстима и работает.

mysql_query("INSERT INTO g (pole1, pole3) VALUES ('pole1', 'pole3')");

Единсвенное, если только pole1 не является ключем и индексом, а то может ты одно и тоже значение пихаешь в ключ? Тогда используй REPLACE INTO вместо INSERT INTO

   
 
 автор: moonfox   (27.11.2006 в 11:34)   письмо автору
 
   для: XPraptor   (27.11.2006 в 00:42)
 

блин убрал \" заменил на ' - и стало работать!
отчего же раньше НЕ ругалося ? и все записывало... и ведь запись \" - не протеворечит синтаксису!

   
 
 автор: Poison   (27.11.2006 в 11:37)   письмо автору
 
   для: moonfox   (27.11.2006 в 11:34)
 

Противоречит=)) В MySQL нужно загонять либо одинарными либо обратными кавычками:)

   
 
 автор: Trianon   (27.11.2006 в 12:06)   письмо автору
 
   для: Poison   (27.11.2006 в 11:37)
 

Не надо ля-ля.
В обычном режиме допустимы апострофы и двойные кавычки.
В режиме ANSI-совместимости допустимы только апострофы
Обратные косые кавычки вообще для литералов не применяются. Ими обрамляют метаданные - имена полей и таблиц.

   
Rambler's Top100
вверх

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