Joomla 更新記錄

2023-03-10 11:22 更新

Joomla更新記錄的方法

使用SQL

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方法失敗將會拋出一個錯誤。因此,在更新之前,最好能夠檢查一下這個記錄是否存在。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號