2012-07-17 83 views
0

如果有人請查看我的代碼並告訴如何處理它。我認爲這是對的,但顯然不是。使用循環更新sql(PDO)

<? require_once("dblogin.php"); 
$sth = $conn->prepare("SELECT * FROM country_city_zip WHERE country = US"); 
$sth->execute(); 
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 

$sql ="UPDATE country_city_zip SET uni = '".$row['country']."-".$row['zip']."' WHERE country = '".$row['country']."' AND zip = '".$row['zip']."'"; 
$count = $conn->exec($sql); 

} ?> 

我想創建一個基於國家代碼和郵政編碼的唯一ID:例如。 US-28172

回答

2

試試這個:

UPDATE country_city_zip SET uni = Concat(country,'-',zip) 

無需環路...

+0

所以基本上你只是想讓我這樣做: $ sql =「UPDATE country_city_zip SET uni = Concat(country,' - ',zip)」; $ count = $ conn-> exec($ sql); – Dimser 2012-07-17 11:48:11

+0

是......不要在真實數據上測試建議的解決方案,但是......或者至少有一個可用的備份...不能太安全。 – 2012-07-17 11:49:54

+0

這實際上是解決方案..不知何故..我選擇不創建一個腳本來爲我做。因爲當我只是鍵入你寫的那句話 - 進入數據庫中的SQL字段,它正是我想要的。如果你想要一個腳本來爲你做...似乎很難......謝謝! – Dimser 2012-07-17 11:55:25

4

嘗試此查詢

$sql= "UPDATE country_city_zip SET uni = '".concat($row['country'],"-",$row['zip'])."' WHERE country = '".$row['country']."' AND zip = '".$row['zip']."'"; 

我認爲你有問題的SQL查詢和基於我會張貼我的回答

我希望問題解決了,你有任何問題,然後讓我知道..

+0

我似乎沒有任何問題,但它仍然不會更新表中的數據。 – Dimser 2012-07-17 11:49:25

+0

請回應您的查詢,並檢查什麼值來,仍然沒有得到然後把查詢在這裏@Philip延斯Bramsted – Jalpesh 2012-07-17 11:52:48

+0

它不會做任何事情..但它的作品,當我只是在SQL領域中使用的句子數據庫,而不是...需要腳本。不管怎麼說,還是要謝謝你.. – Dimser 2012-07-17 11:56:16