ОБНОВЛЕНИЕ только если поле пустое

0

Я пытаюсь остановить обновление 2 таблиц на основе обновления в первой таблице.

Вот что мне нужно проверить в первой таблице.

//add user to pif_table//
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query="UPDATE 'pif_table' SET $g = '$uname', @success = 1 WHERE $g IS NULL OR $g = '' AND id = '$id' ";
$db->setQuery($query);
$result = $db->execute();

Итак, первая таблица выше обновляется, только если столбец $ g пуст.

Я только хочу, чтобы следующие 2 таблицы были обновлены IF, столбец $ g был пуст и был обновлен выше.

Я получаю синтаксическую ошибку из команды @success = 1 команды.

if ($success == 1){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query="UPDATE 'jospk_users' SET tables = tables +1, payments = payments +1, tbl".$pifbase."= tbl".$pifbase." +1 WHERE id = '$uid'";
$db->setQuery($query);
$result = $db->execute();

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "INSERT INTO 'pif_payments' ('table_num', 'r_1', 'r_2', 'r_3', 'r_4', $g, 'amount') VALUES ('$id', '$r1', '$r2', '$r3', '$r4', '$uname', '$pifbase') ON DUPLICATE KEY UPDATE $g = '$uname'";
$db->setQuery($query);
$result = $db->execute();
}
Теги:
database
joomla

1 ответ

0

Насколько я понимаю, метод Jommla JFactory execute не вернет false, если запись не была обновлена, и вы можете проверить это только при запросе базы данных.

Итак, создайте переменную или массив с новыми значениями, прежде чем пытаться запустить первый запрос UPDATE и как только вы это сделаете, проверьте запись и посмотрите, соответствует ли она новому значению, если при этом продолжать выполнение оставшихся запросов.

  • 0
    $ result всегда возвращает 1, так что это не работает. Спасибо за ответ, хотя Кит.
  • 0
    Я не уверен, что здесь $ db. Не могли бы вы показать мне код создания экземпляра объекта $db ? Метод execute для объекта PDO возвращает логическое значение, но я хочу проверить его с помощью собственного кода (т. Е. Если $ g пусто)
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню