特定の行がすでにJDatabaseテーブルに存在するかどうかを確認する最良の方法は何ですか?
INSERT INTOコマンドの代わりに、行が既に存在する場合はUPDATEコマンドを実行する必要があります。
助けていただければ幸いです!
したがって、#__users
テーブルのユーザー名Saibbyweb
を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();
}
お役に立てれば