Как проверить, существует ли определенная строка в таблице JDatabase?

Каким будет лучший способ проверить, существует ли определенная строка уже в таблице JDatabase?

Вместо команды INSERT INTO мне нужно выполнить команду UPDATE, если строка уже существует.

Помощь будет оценена!

2 голоса | спросил saibbyweb 27 AMpWed, 27 Apr 2016 08:47:42 +030047Wednesday 2016, 08:47:42

1 ответ


1

Итак, скажем, вы хотели бы обновить имя пользователя Saibbyweb в #__users на что-то вроде Saibbyweb123.

Сначала вам нужно выполнить запрос select, чтобы увидеть, существует ли строка:

$db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select($db->quoteName('username'))
      ->from($db->quoteName('#__users'))
      ->where($db->quoteName('username') . ' = '. $db->quote('Saibbyweb'));
$db->setQuery($query);

$result = $db->loadResult();

$result теперь либо будет содержать имя пользователя, либо будет null.

Итак, теперь вы можете запустить свой запрос update, если результат не является null:

if ($result !== null)
{
    $query  = $db->getQuery(true);
    $query->clear();

    $fields     = array($db->quoteName('username') . ' = ' . $db->quote('Saibbyweb123'));
    $conditions = array($db->quoteName('username') . ' = ' . $db->quote($result));

    $query->update($db->quoteName('#__users'))->set($fields)->where($conditions);
    $db->setQuery($query);
    $db->execute();
}

Надеюсь, что это поможет

ответил Lodder 27 AMpWed, 27 Apr 2016 11:20:23 +030020Wednesday 2016, 11:20:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132