Проблема с update

asics

Новичок
Проблема с update

Нужно периодически обновлять числа в таблице, переменные для обновления получаются регулярными выражениями и если совпадений нет( Array ( ) ) то скрипт выдает ошибку, не обновляет таблицу и не выполняется до конца:
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 'rezerv= WHERE name='MegaExchange'' at line 1
А нужно, чтобы при отсутствии переменной скрипт заносил в таблицу "0" и выполнялся дальше.

вот код:
PHP:
preg_match('/буквы всякие здесь(\d*\.\d*), тоже буквы=(\d*\.\d*|\d*)/',$content,$peremennaya);

$query121= "UPDATE IGNORE TABL SET mod=$peremennaya[1],rev=$peremennaya[2] WHERE name='sanyo";

mysql_query($query121) or die(mysql_error());
Проблема с остановкой скрипта решается удалением "or die(mysql_error());", тогда скрипт выполняется дальше, но вот "0" вместо старого значение, естественно, не заносится, да и удаление "or die(mysql_error());"- это не выход, т.к. я не увижу ошибки которые могут возникнуть в будующем.
 

zerkms

TDD infected
Команда форума
выводил бы в die ещё свой запрос - и сразу бы понял в чём дело
 

asics

Новичок
Я читал эту статью.

Я понимаю из-за чего ошибка возникает, понимаю её механизм.
Возникает из-за отстутствия переменной которую нужно занести в таблицу.

Но как сделать чтобы скрипт работал дальше и занес вместо отсутствующей переменной "0" не могу додуматься.

П.С. немного поправил шапку.
 

Андрейка

Senior pomidor developer
по всей видимости пхп глючит...
вместо rev=... WHERE name=...
он из-за глюка пытаецца выполнить запрос с
rezerv= WHERE name=
 

zerkms

TDD infected
Команда форума
Возникает из-за отстутствия переменной которую нужно занести в таблицу.
проверить на наличие переменной/её содержания (empty())

Но как сделать чтобы скрипт работал дальше и занес вместо отсутствующей переменной "0" не могу додуматься.
PHP:
if (empty($var)) {
    $var = 0;
}
 

asics

Новичок
Автор оригинала: zerkms
проверить на наличие переменной/её содержания (empty())
[/php]
Cпасибо огромное, это работает,
только у меня 2 парные переменные всегда одновременно отсутствуют и приходится писать дважды:

PHP:
if (empty($peremennaya[1])) { 
    $peremennaya[1] = 0; 
}
if (empty($peremennaya[2])) { 
    $peremennaya[2] = 0; 
}
в одно условие обе переменные можно как-то запихнуть?
 

asics

Новичок
как?

пробую по всякому, не хочет вместе работать

PHP:
if (empty($peremennaya[1], $peremennaya[2])) { 
    $peremennaya[1] = 0;
    $peremennaya[2] = 0;
}
 

Фанат

oncle terrible
Команда форума
запихнуть в одно условие. в первое.

-~{}~ 09.05.07 14:27:

zerkms
нафига оба проверять?
 

asics

Новичок
Вот так не работает:

PHP:
if (empty($peremennaya[1], $peremennaya[2])) { 
    $peremennaya[1] = 0;
    $peremennaya[2] = 0;
}
 

Фанат

oncle terrible
Команда форума
asics
вообще-то, тебе надо не "пробовать по всякому", а язык учить.
уж код, который тебе первым привели, надо бы самому уметь писать. не бином ньютона.

если ты не можешь на пхп написать "если переменной нет, то присвоить ей значение 0", то надо сначала учебник читать, а потом уже начинать что-то писать

-~{}~ 09.05.07 14:32:

зачем ты обе проверяешь? сам же сказал, что они только одновременно пустые бывают?
 

Фанат

oncle terrible
Команда форума
empty($peremennaya[1], $peremennaya[2]))
а вот за это надо по рукам бить. линейкой.
чтобы никогда функцию не писал до того, как прочитал её описание в документации.
 

asics

Новичок
Фанат,
zerkms спасибо, оч. помогли!

-~{}~ 09.05.07 14:37:

Автор оригинала: Фанат
а вот за это надо по рукам бить. линейкой.
чтобы никогда функцию не писал до того, как прочитал её описание в документации.
Да я прочитал, просто не всегда все варианты описаны, думал А ВДРУГ :)
Извини, мне стыдно, за глупые вопросы- практики маловато.
 

Фанат

oncle terrible
Команда форума
просто не всегда все варианты описаны
завираешься
или не умеешь читать документацию.
что ты имеешь в виду под "описанием вариантов"?
в примерах, может быть, варианты и не все, но СИНТАКСИС просто не может быть описан "с не всеми вариантми".
 
Сверху