Quel serait le meilleur moyen de vérifier si une ligne spécifique existe déjà dans une table JDatabase?
Au lieu de INSERT INTO Command, je dois exécuter une commande UPDATE si la ligne existe déjà.
Une aide serait appréciée!
Disons que vous souhaitez mettre à jour le nom d'utilisateur Saibbyweb
dans le fichier #__users
table à quelque chose comme Saibbyweb123
.
Vous devrez d'abord exécuter une requête select
pour voir si la ligne existe déjà:
$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();
Le $result
va maintenant contenir le nom d'utilisateur ou être null
.
Donc, vous pouvez maintenant exécuter votre requête update
si le résultat n'est pas 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();
}
J'espère que cela t'aides