2014-09-19 115 views
0
$q = 'UPDATE dashboard SET a= '.$a.' AND 
     UPDATE dashboard SET b= '.$b.' AND 
     UPDATE dashboard SET c= '.$c.' AND 
     UPDATE dashboard SET d= '.$d; 

我的連接出錯了?更新SQL語句失敗,變量

+0

爲什麼不是一個單一的更新命令的東西爲'更新儀表盤設置=「someval」,B =「一些VAL」 ...' – 2014-09-19 09:34:58

+1

而使用的mysqli這將是一個好主意也使用參數化準備語句。 – VMai 2014-09-19 09:36:20

+0

@VMai例子?? – user3522738 2014-09-19 09:40:31

回答

0

UPDATE語法不用於每一列。相反,你必須使用類似:

q = 'UPDATE dashboard SET a= '.$a.', 
          b= '.$b.', 
          c= '.$c.', 
          d= '.$d; 

當然,你可能需要添加,如果$a,...瓦爾可能有字符引號。

MySQL --> 13.2.10 UPDATE Syntax

UPDATE [LOW_PRIORITY] [IGNORE] table_reference 
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 

當您使用mysqli,你應該使用準備好的發言安全(好!):

$sql = 'UPDATE dashboard SET a = :a, b = :b, c = :c, d = :d'; 
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 
$sth->execute(array(':a' => $a, ':b' => $b, ':c' => $c, ':d' => $d)); 

更多信息,請參見PDO::prepare in php.net manual

+0

你可以幫助這裏http://stackoverflow.com/questions/25931203/sql-update-query-didnt-execute-but-return-no-errror ?? thx – user3522738 2014-09-19 10:03:55

+0

你可能需要'execute()'而不是'query()' – fedorqui 2014-09-19 10:34:17

0

它應該是這樣的。

$q = 'UPDATE dashboard SET a= '.$a.', b= '.$b.', c= '.$c.', d= '.$d; 

並且你是否缺少where條件,或者你想要更新所有記錄?

更新:

$emp_id = $_POST['emp_id']; 
$emp_salary = $_POST['emp_salary']; 

$sql = "UPDATE employee ". 
    "SET emp_salary = $emp_salary ". 
    "WHERE emp_id = $emp_id" ; 
+0

thx,所以在我的情況下沒有連接錯誤? – user3522738 2014-09-19 09:39:47

+0

不會有任何級聯錯誤。但請確保添加單引號以傳遞varchar數據。 – Ankith 2014-09-19 09:44:06

+0

你能幫我看看嗎? http://stackoverflow.com/questions/25931203/sql-update-query-didnt-execute-but-return-no-errror – user3522738 2014-09-19 10:03:35