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

我想知道你是否尝试过 print_r 你的 $query 来检查。

第一个。将您的连接字符串移到最顶部。

第二。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()在“失败”部分中添加一个,您就会想到这一点。

于 2012-09-06T09:45:37.010 回答
1

尝试通过添加逗号进行更改

status=$status'status='$status'

并且仅供参考paid='paid'paid='$paid'以确保传递正确的值

于 2012-09-06T09:47:12.723 回答