2012-09-06 78 views
1

PHP通常可以直接使用,但我無法使此查詢正常工作。我正試圖更新一個簡單的記錄。我的代碼如下。在MySQL和PHP中更新查詢不起作用

<?php 

$customername=mysql_real_escape_string($_POST['customername']); 
$contact=mysql_real_escape_string($_POST['contact']); 
$customerorder=mysql_real_escape_string($_POST['customerorder']); 
$orderplaced=mysql_real_escape_string($_POST['orderplaced']); 
$staffmember=mysql_real_escape_string($_POST['staffmember']); 
$daterequired=mysql_real_escape_string($_POST['daterequired']); 
$status=mysql_real_escape_string($_POST['status']); 
$paid=mysql_real_escape_string($_POST['paid']); 
$delivery=mysql_real_escape_string($_POST['delivery']); 
$ordercontent=mysql_real_escape_string($_POST['ordercontent']); 
$orderid=mysql_real_escape_string($_GET['orderid']); 

mysql_connect("localhost", "xxxx", "xxxxxxx") or die("Connection Failed"); 
mysql_select_db("xxxxxx")or die("Connection Failed"); 


$query = "UPDATE ordermanager_orders SET customername='$customername', contact='$contact', ordernumber='$customerorder', placedby='$orderplaced', requiredby='$daterequired', status=$status', staffmember='$staffmember', paid='paid', delivery='$delivery', ordercontent='$ordercontent' WHERE order='$orderid'"; 

if(mysql_query($query)){ 
echo "updated";} 
else{ 
echo "fail";} 

?> 

這些值將從其他頁面發佈或「獲取」。它們肯定會通過,否則會出現錯誤。目前它只是根據代碼提出'失敗'。

我已經嘗試了無數的互聯網上的代碼變體,以檢查我的代碼是否正確,但是我仍然無法使其工作。

+0

任何錯誤消息MySQL? – Sirko

+0

它迴應'失敗'嗎? –

+0

有沒有錯誤信息顯示從MySQL,但我不知道如何使用回聲方法來檢查? – user1641165

回答

1

您的錯誤是因爲未正確處理您的status更新:status=$status'必須是status='$status'

如果您將mysql_error()放在您的「失敗」部分,您會想到這一點。

+0

我改變了狀態問題沒有用 – user1641165

3

我以爲你必須先連接數據庫,然後才能使用mysql_real_escape_string()?嘗試連接以上所有其他代碼。

該查詢的狀態部分也缺少一個引號。

+0

你是對的。沒有有效連接的情況下不能使用mysql_real_escape_string。 –

+0

我已將連接推到代碼的頂部,但同樣的錯誤發生.... – user1641165

+0

echo $ query並將其粘貼到phpmyadmin中以查看它告訴您的內容。 – 472084

4

我不知道你是否試圖print_r你的$查詢來檢查。

1st。將您的連接字符串移到最上面。

2nd。 status=$status' < < ===少1個報價

1

嘗試通過加入逗號改變

status=$status'status='$status'

而且FYI改變paid='paid'paid='$paid',以確保正確的值是由傳遞