2012-12-13 54 views
-3

我想執行查詢。如果第一個失敗則執行第二,但它是說:未知列但在PHPMyAdmin中工作

MySQL ERROR: Unknown column 'status' in 'field list'

mysql_query("UPDATE `rolerota` SET `status`='$_GET[status]' WHERE `uid`='$_GET[id]'") or die("MySQL ERROR: ".mysql_error()); 

mysql_query("UPDATE `showrota` SET `status`='$_GET[status]' WHERE `uid`='$_GET[id]'") or die("MySQL ERROR: ".mysql_error()); 

他們做工精細在phpMyAdmin,所以我知道該列確實存在。有任何想法嗎?

感謝

+4

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

+4

您的代碼已廣泛應用於[SQL注入](http://stackoverflow.com/q/60174) –

+0

完全同意@JohnConde。至於你的實際問題,你可以向我們展示你的表格結構。 – Cfreak

回答

0

我不會使用的mysqli作爲已經建議意見,確保在可能的時候進行升級。

如果它真的在phpmyadmin上工作,那麼我會假設列真的存在,問題不在於此。因此請檢查以下事項:

1)也許您在phpmyadmin和您的代碼上使用不同的數據庫服務器。檢查你的mysql_connect()以確定。

2)也許你正在phpmyadmin和你的代碼上使用不同的數據庫。檢查您的mysql_select_db(),以確保

3)一旦做到這一點試試這個:

mysql_query("UPDATE rolerota SET status='".mysql_real_escape_string($_GET['status'])."' WHERE uid='".mysql_real_escape_string($_GET['id'])."'") or die("MySQL ERROR 1: ".mysql_error()); 

mysql_query("UPDATE showrota SET status='".mysql_real_escape_string($_GET['status'])."' WHERE uid='".mysql_real_escape_string($_GET['id'])."'") or die("MySQL ERROR 2: ".mysql_error()); 

你會了解哪些查詢取決於消息失敗,你也將更好保護數據庫免遭sql注入。

如果這不起作用,然後嘗試發佈新的錯誤消息和您的數據庫結構。

+0

這並不奏效 - 但我想這是一個好主意,現在開始使用PDO創建新腳本,這將節省我時間,整個網站。感謝您的建議 – MrGuitarWizard

相關問題