[英]Updating table in php-mysql
我正在寫一個涉及mysql的php代碼。 有一次,我必須使用以下2條語句更新數據庫中的表。 但是這些都不起作用。
$temp = $row['tracking_id'];
mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'");
請注意,我沒有收到錯誤消息。 該表雖然未更新。 另請注意,列名,表名正確。 我也嘗試過在WHERE子句中在$ temp周圍沒有單引號引起來。
與數據庫的連接很好。 我知道這cos選擇查詢工作正常。
有任何想法嗎?
謝謝
嘗試var_dump temp
var_dump($temp);
並檢查查詢中的錯誤
mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'") or trigger_error(mysql_error()." <here is that problem");
它會給你答案
首先檢查$ temp中的值。
如果value很好,就可以這樣做來回顯您的查詢。
echo $ sql =“ UPDATE order_products SET state = 4.00 WHERE tracking_id ='$ temp'”; $ result = mysql_query($ sql);
它僅用於測試和檢查查詢是否可以? 嘗試直接運行它,看看是否有任何錯誤
您是如何獲取該行的?
使用mysql_tetch_row
或mysql_fetch_array
嗎?
如果您使用的是fetch_array
則它不是一個關聯數組,並且您不能執行row['something']
,只能執行row[index]
,因此請改用fetch_row
。
打印temp的值以驗證它是可以的,如果仍然找不到問題,請嘗試使用mysql_error()
函數來打印最后一個mysql錯誤。
請注意,我沒有收到錯誤消息。
難怪。 您必須向數據庫詢問錯誤消息。
$tmp = mysql_real_escape_string($row['tracking_id']);
$sql = "UPDATE order_products SET state=4.00 WHERE tracking_id = '$tmp'";
mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
var_dump(mysql_affected_rows); //to see if rows were changed.
如果只打印0,則表中已經有一行值完全相同的行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.