2013-07-10 78 views
0

如果名字已經存在,我的腳本需要更新表格。但它沒有這樣做。PDO沒有更新

這是我的代碼,我使用

$sth = $db->prepare(
    'INSERT INTO track (rsname, overallranknow, overalllevelnow, overallxpnow) 
     VALUES (:name, :Overalln, :Overall1, :Overall2) 
     ON DUPLICATE KEY UPDATE 
     rsname = values(rsname), 
     overallranknow = values(overallranknow), 
     overalllevelnow = values(overalllevelnow), 
     overallxpnow = values(overallxpnow)' 
);  
$sth->bindValue(':name', $name, PDO::PARAM_STR); 
$sth->bindValue(':Overalln', $Overalln, PDO::PARAM_INT); 
$sth->bindValue(':Overall1', $Overall[1], PDO::PARAM_INT); 
$sth->bindValue(':Overall2', $Overall[2], PDO::PARAM_INT); 
$sth->execute(); 

當名字已經存在它應該只更新。我不知道有關PDO的不滿,所以這就是爲什麼我要問這個問題。

〜千電子伏(英語不好=對不起)

+1

當您在phpMyAdmin或類似的客戶端工具中運行查詢時,查詢是否工作?另外,請查看[如何從PDO擠出錯誤信息?](http://stackoverflow.com/q/3726505) –

+0

「但它沒有這樣做」 - **如果你確定它沒有這樣做? –

+0

@ N.B。它不這樣做=它不更新表 也沒有錯誤信息 – Kev30

回答

2

有人誰教你這個查詢,也沒有告訴你,你需要一個獨特的密鑰爲它工作。

+0

我該如何解決這個問題? – Kev30