Я пытаюсь остановить обновление 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();
}
Насколько я понимаю, метод Jommla JFactory execute
не вернет false, если запись не была обновлена, и вы можете проверить это только при запросе базы данных.
Итак, создайте переменную или массив с новыми значениями, прежде чем пытаться запустить первый запрос UPDATE
и как только вы это сделаете, проверьте запись и посмотрите, соответствует ли она новому значению, если при этом продолжать выполнение оставшихся запросов.
$db
? Метод execute для объекта PDO возвращает логическое значение, но я хочу проверить его с помощью собственного кода (т. Е. Если $ g пусто)