1

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";}

?> 

値は別のページから投稿または「取得」されています。そうでなければエラーが発生するので、彼らは間違いなく通り抜けています。現時点では、コードに従って「失敗」が発生します。

コーディングが正しいかどうかを確認するために、インターネットで見つかったコードのさまざまなバリエーションを試しましたが、それでも機能させることができません。

4

4 に答える 4

4

$query を print_r して確認しようとしたのだろうか。

1位。接続文字列を一番上に移動します。

2番目。status=$status'<<=== 1 つ少ない引用符

于 2012-09-06T09:46:06.040 に答える
3

を使用するには、データベースに接続する必要があると思いましたmysql_real_escape_string()か? 他のすべてのコードの上に接続してみてください。

クエリのステータス セクションにも引用符がありません。

于 2012-09-06T09:45:45.353 に答える
1

エラーは、status更新を正しく処理していないためです:status=$status'である必要がありますstatus='$status'

mysql_error()「失敗」セクションにaを入れていれば、これを理解できたでしょう。

于 2012-09-06T09:45:37.010 に答える
1

コンマを追加して変更してみてください

status=$status'status='$status'

参考までに、正しい値が確実に渡されるように変更paid='paid'しますpaid='$paid'

于 2012-09-06T09:47:12.723 に答える