簡體   English   中英

在php-mysql中更新表

[英]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_rowmysql_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM