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 :: Синтаксис!!

 PHP.SU

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


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

> Описание: Сложение
UNTRUSTED
Отправлено: 27 Марта, 2012 - 17:15:24
Post Id


Частый гость


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


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




Как бы все работает, но хочу чтобы запись была правильной:
CODE (htmlphp):
скопировать код в буфер обмена
  1. mysql_query("UPDATE `table` SET `col` = col + ".$var[0]." WHERE `col2` = '$var2' LIMIT 1"); //вот так все прекрасно работает, но как правильно записать вот это =>
  2. `col` = col + ".$var[0]." //??

Вообщем пробовал вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. `col` = 'col + ".$var[0]."' //игнор
  2. `col` = 'col' + '".$var[0]."' // так обновляет на значение, которое после плюса
  3. `col` = `col` + '".$var[0]."' //тоже игнор
  4.  
 
 Top
EuGen Администратор
Отправлено: 27 Марта, 2012 - 17:19:14
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




PHP:
скопировать код в буфер обмена
  1. mysql_query("UPDATE `table` SET `col` = col + ".mysql_real_escape_string($var[0])." WHERE `col2` = '".mysql_real_escape_string($var2)."' LIMIT 1");


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 27 Марта, 2012 - 17:36:42
Post Id


Частый гость


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


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




Нет, я имел ввиду, что имена столбцов заключаются в апострофы `, а згначения в кавычки ', а как здесь в сложении поставить? Если допустим складываються два значения имен столбцов? Надеюсь понятнее стало?
 
 Top
EuGen Администратор
Отправлено: 27 Марта, 2012 - 17:41:29
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Если в выражении фигурируют названия столбцов, то

Если фигурирует некоторое строковое значение, то

- стоит учесть, что оператор "+" в MySQL считается арифметическим, он не равносилен конкатенации (склеиванию), если операнды - строки. И такая запись будет трактоваться, как сложение чисел, то есть "value" будет сначала приведено к числовому типу. Чтобы произошла действительно конкатенация, используйте
CODE (SQL):
скопировать код в буфер обмена
  1. `col` = CONCAT(`col`, "value")

Если значение числовое, то

Правило простое. Строковые литералы заключаются в прямые кавычки, имена полей - в обратные (апострофы)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 27 Марта, 2012 - 18:21:41
Post Id


Частый гость


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


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




Спасибо!
 
 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