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
Форумы портала PHP.SU :: Версия для печати :: php mysql галочка null пустое поле
Форумы портала PHP.SU » » Работа с СУБД » php mysql галочка null пустое поле

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

1. Телевизор - 10 Июня, 2012 - 17:19:13 - перейти к сообщению
не могу сообразить подскажите,
в mysql запросе UPDATE устанавливаю переменной 1 или null. (в mysql по умолчанию null)
но этот null галочка не ставится а пишетсмя значение 0

Поможите пожлста

PHP:
скопировать код в буфер обмена
  1. $query = "UPDATE table
  2. SET direct_link = ".mysql_real_escape_string((isset($_POST['direct_link']) ? 1 : null))."
  3. WHERE `id` = '".mysql_real_escape_string($_GET['f'])."';";


вот этот null записывается как 0 а нужно чтобы в mysql ставилась галочка null поумолчанию
2. OrmaJever - 10 Июня, 2012 - 17:49:16 - перейти к сообщению
Ну дак нужно таблицу так создать что бы было разрешено этому полю быть null
3. Телевизор - 10 Июня, 2012 - 17:52:49 - перейти к сообщению
OrmaJever пишет:
Ну дак нужно таблицу так создать что бы было разрешено этому полю быть null

разрешено - я установил в таблице в поле null по умолчанию,
а в скрипте не получается чтобы был null по умолчанию
4. OrmaJever - 10 Июня, 2012 - 18:04:28 - перейти к сообщению
Запрос на создание таблицы можно?
5. Телевизор - 10 Июня, 2012 - 18:34:32 - перейти к сообщению
Блииин самое главное не сказал простите пожалуйста,
когда без тернарного условия просто sql запрос ввида
CODE (SQL):
скопировать код в буфер обмена
  1. ... UPDATE TABLE
  2. SET direct_link = NULL
  3. WHERE `id` ....


То все работает и null по умолчанию устанавливается а вот с тернарным условием не получается извращался как мог...

OrmaJever пишет:
Запрос на создание таблицы можно?

Спойлер (Отобразить)
6. Мелкий - 10 Июня, 2012 - 18:49:38 - перейти к сообщению
Приведение типов, приведение типов.
null становится 0 после mysql_real_escape_string. Чтобы сделать поле null'ом надо и передавать самим запросом null, а не значение php. Чтобы в запросе и было написано set `field`=null.
Проще говоря, вставляйте строку 'null'
7. Телевизор - 10 Июня, 2012 - 19:48:04 - перейти к сообщению
OrmaJever , Мелкий
понел спасибо

получается что оптимальное решение такое ?
PHP:
скопировать код в буфер обмена
  1. // работает
  2. $query = "UPDATE table SET ".(isset($_POST['direct_link']) ? 'direct_link = 1' : 'direct_link = null')." WHERE `id` ... ;";
8. OrmaJever - 10 Июня, 2012 - 20:03:38 - перейти к сообщению
даже короче можно, что бы не повторятся
PHP:
скопировать код в буфер обмена
  1. $query = "UPDATE table SET direct_link = ".(isset($_POST['direct_link']) ? '1' : 'null')." WHERE `id` ... ;";
  2.  
9. Телевизор - 10 Июня, 2012 - 20:24:27 - перейти к сообщению
ой да да именно так спасибо OrmaJever

 

Powered by ExBB FM 1.0 RC1