大家好,一般來說,要新增一筆資料,需要注意主鍵是否重複,否則新增會失敗,所以程序會變成:
 
先查詢是否有重複:
有 => update 更新資料
無 => insert 新增資料
 
所以...相當麻煩,總共要寫3個query,所以我找一下,發現 mysql 原本就有蠻方便的寫法:
 
$db = JFactory::getDBO();
$insertQuery = $db->getQuery(true);
$insertQuery->insert('#__test')
    ->set("guid = 10 ")
    ->set("name = ".$db->quote("王小明"));

$updateQuery = "guid = 10".
    ",name = ".$db->quote("王小明");

$query = $insertQuery.' ON DUPLICATE KEY UPDATE '.$updateQuery;
$db->setQuery($query);
$db->execute();


 
上面是使用 joomla DBO 物件的寫法,下面列出SQL:
 
INSERT #__test SET guid = 10,name = "王小明" ON DUPLICATE KEY UPDATE guid = 10,name = "王小明"
給大家參考囉,感恩。