Проблема с update

  • Автор темы Автор темы asics
  • Дата начала Дата начала

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());"- это не выход, т.к. я не увижу ошибки которые могут возникнуть в будующем.
 
выводил бы в die ещё свой запрос - и сразу бы понял в чём дело
 
Я читал эту статью.

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

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

П.С. немного поправил шапку.
 
по всей видимости пхп глючит...
вместо rev=... WHERE name=...
он из-за глюка пытаецца выполнить запрос с
rezerv= WHERE name=
 
Возникает из-за отстутствия переменной которую нужно занести в таблицу.
проверить на наличие переменной/её содержания (empty())

Но как сделать чтобы скрипт работал дальше и занес вместо отсутствующей переменной "0" не могу додуматься.
PHP:
if (empty($var)) {
    $var = 0;
}
 
Автор оригинала: zerkms
проверить на наличие переменной/её содержания (empty())
[/php]
Cпасибо огромное, это работает,
только у меня 2 парные переменные всегда одновременно отсутствуют и приходится писать дважды:

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

в одно условие обе переменные можно как-то запихнуть?
 
как?

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

PHP:
if (empty($peremennaya[1], $peremennaya[2])) { 
    $peremennaya[1] = 0;
    $peremennaya[2] = 0;
}
 
запихнуть в одно условие. в первое.

-~{}~ 09.05.07 14:27:

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

PHP:
if (empty($peremennaya[1], $peremennaya[2])) { 
    $peremennaya[1] = 0;
    $peremennaya[2] = 0;
}
 
asics
вообще-то, тебе надо не "пробовать по всякому", а язык учить.
уж код, который тебе первым привели, надо бы самому уметь писать. не бином ньютона.

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

-~{}~ 09.05.07 14:32:

зачем ты обе проверяешь? сам же сказал, что они только одновременно пустые бывают?
 
empty($peremennaya[1], $peremennaya[2]))
а вот за это надо по рукам бить. линейкой.
чтобы никогда функцию не писал до того, как прочитал её описание в документации.
 
Фанат,
zerkms спасибо, оч. помогли!

-~{}~ 09.05.07 14:37:

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