2016-06-17 52 views
0

我是phalcon framework的新手。我想更新phalcon模型更新方法的數據。php phalcon phql更新

$ SQL = 「UPDATE SET tablecol1 = '1',col2 = NULL WHERE 1」;

> $all = model::findFirst(); 
>     $all->col1 = '1'; 
>     $all->col2= NULL; 
>     $all->update(); 

我不知道的 「其中1」 的想法。

+0

你在說什麼'WHERE 1'?你在這裏錯過了一列嗎? 'WHERE col1 = 1'? – Timothy

+0

我刪除了@Timothy – illusionist

回答

-1

這是什麼WHERE 1?你的意思是WHERE id = 1?然後您需要:

$all = model::findFirst(1); 
$all->col1 = '1'; 
$all->col2= NULL; 
$all->update(); 
+1

它會選擇id是否是您的數據庫中的PK(主鍵)。將整數值傳遞給findFirst意味着phalcon將查找PK - 如果它將找到它,它將獲得此PK的名稱並查找您通過的值。 – Juri

+0

表沒有主鍵。 – illusionist

+0

然後你需要使用findFirstByCol1或其他東西。或者只是創建PR。據我所知phalcon也不會更新任何東西,直到它有PR。 – Juri

0

在您可以更新模型之前,您需要從數據庫中請求它。
在以下示例中,您正在查詢第col1列中的值等於123的第一條記錄。

$all = model::findFirst(['col1 = 123']); 
// you can also write this like 
$all = model::findFirstByCol1(123); 

在背景多爾康將上述代碼轉換爲一個查詢,類似於:

SELECT * FROM模型WHERE COL1 = 123 LIMIT 1;

現在你通過$all訪問模型,你可以改變它的屬性:

$all->col2 = null; 

如果你做改變$all,您可以更新數據庫中的值:

$all->update(); // or $all->save(); 

如果您在使用模型時需要更多幫助,請參閱Phalcon documentation