W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Joomla更新記錄的方法
JDatebaseQuery對象提供了update().set()這兩個方法來構(gòu)建更新SQL語句。通用可以使用where()來指定條件。典型的代碼如下:
$db = JFactory::getDbo();
$query =$db->getQuery(true);
$query->update($db->quoteName('#__zmax_user'))->set("state=1")->where("id=99");
$db->setQuery($query);
$result =$db->execute();
這里的set,where方法也支持數(shù)組,可以同時設(shè)置多個字段。代碼如下:
$db = JFactory::getDbo();
$query =$db->getQuery(true);
// 需要更新的字段
$fields =array(
$db->quoteName('intro') .' = ' .$db->quote('my nam is zhangmin.'),
$db->quoteName('ordering') .' = 2',
// 設(shè)置null值得方法
$db->quoteName('avatar') .' = NULL',
);
// 更新的條件
$conditions =array(
$db->quoteName('user_id') .' = 42',
$db->quoteName('name') .' = ' .$db->quote('zmax99')
);
$query->update($db->quoteName('#__zmaxuser'))->set($fields)->where($conditions);
$db->setQuery($query);
$result =$db->execute();
JDatabaseDriver類提供了updateObject方法來更新一條記錄。
$updateNulls = true;//是否更新NULL值
// 創(chuàng)建一個對象,這個對象的字段必須和需要更新數(shù)據(jù)表的字段一致,可以少,但不能多
$object =new stdClass();
$object->id = 1;// 需要更多數(shù)據(jù)表的主鍵
$object->title ='My Custom Record';
$object->description ='A custom record being updated in the database.';
// 如果需要設(shè)置NULL,需要明確在值中指定.
$object->short_description = null;
$result = JFactory::getDbo()->updateObject('#__zmaxuser',$object,'id',$updateNulls);
和insertObject一樣,updateObject方法也會自己給數(shù)據(jù)表加上引號。執(zhí)行updateobject方法失敗將會拋出一個錯誤。因此,在更新之前,最好能夠檢查一下這個記錄是否存在。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: