簡體   English   中英

使用SQLite3和PHP獲取“更新”錯誤

[英]Get 'Update' error using SQLite3 and PHP

我創建了一個嘗試使用條件更新值的函數。 如果出現問題,它將嘗試執行INSERT。

代碼如下:

if(!$result=$this->query("UPDATE collect_data_settings SET setting_value ='".$setting_value."' WHERE collect_point = '".$collect_point."' AND setting_name='".$setting_name."';"))
        $result=$this->query("INSERT INTO collect_data_settings ('collect_point','setting_name','setting_value') VALUES ('".$collect_point."','".$setting_name."','".$setting_value."');");

不幸的是,由於某種原因,即使不滿足條件,UPDATE查詢也永遠不會返回false。 有人能幫我嗎?

為什么不先嘗試搜索collect_point(假設這是一個唯一鍵)變量,如果尚未在數據庫中,則使用INSERT語句,如果沒有,則使用UPDATE語句。 例如:

$db = new SQLite3('database.db')    
$check = $db->query("SELECT * FROM collect_data_settings WHERE collect_point = '$collect_point'")
$check_query = $check->numRows();

if($check_query > 0) {
    *Your UPDATE query*
}else {
    *Your INSERT query*
}

UPDATE語句修改所有符合WHERE條件的行。 最終號碼沒有關系; 即使沒有行匹配,也會成功檢查所有行。

要查找更改了多少行,請使用changes()函數

$this->exec("UPDATE ... WHERE ...");
if ($this->changes() == 0)
    $this->exec("INSERT ...");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM