2011-05-13 62 views
0

这个脚本有什么问题?我无法弄清楚这个问题!MySQL UPDATE Query不会工作

function editAccount() { 
    $id = $_POST['id']; 
    $rep = $_POST['rep']; 
    $lastchange = date('mdY'); 
    $account = $_POST['account']; 
    $areacode = $_POST['areacode']; 
    $number = $_POST['number']; 
    $address1 = $_POST['address1']; 
    $address2 = $_POST['address2']; 
    $city = $_POST['city']; 
    $state = $_POST['state']; 
    $zip = $_POST['zip']; 
    $country = $_POST['country']; 
    $fax = $_POST['fax']; 
    $descmaker1 = $_POST['descmaker1']; 
    $descmaker2 = $_POST['descmaker2']; 
    $title = $_POST['title']; 
    $email = $_POST['email']; 
    $cvendor = $_POST['cvendor']; 
    $cequipment = $_POST['cequipment']; 
    $leaseexp1 = $_POST['leaseexp1']; 
    $leaseexp2 = $_POST['leaseexp2']; 
    $leaseexp3 = $_POST['leaseexp3']; 
    $leaseexp4 = $_POST['leaseexp4']; 
    $leaseexp5 = $_POST['leaseexp5']; 
    $leaseexp6 = $_POST['leaseexp6']; 
    $volume = $_POST['volume']; 
    $notes = $_POST['notes'];  

    mysql_db_query("UPDATE accounts 
        SET (lastchange = '$lastchange', 
          account = '$account', 
          areacode = '$areacode', 
           number = '$number', 
          address1 = '$address1', 
          address2 = '$address2', 
           city = '$city', 
           state = '$state', 
           zip = '$zip', 
           fax = '$fax', 
          descmaker1 = '$descmaker1', 
          descmaker2 = '$descmaker2', 
           title = '$title', 
           email = '$email', 
          cvendor = '$cvendor', 
          cequipment = '$cequipment', 
          leaseexp1 = '$leaseexp1', 
          leaseexp2 = '$leaseexp2', 
          leaseexp3 = '$leaseexp3', 
          leaseexp4 = '$leaseexp4', 
          leaseexp5 = '$leaseexp5', 
          leaseexp6 = '$leaseexp6', 
           volume = '$volume', 
           notes = '$notes')    
     WHERE id = $id"); 
} 

错误:

警告:错误的参数计数mysql_db_query()在/home/content/53/7311353/html/cca/accounts/include/processAct.php线83

行是:WHERE id=$id");

+0

你会得到什么错误? – 2011-05-13 02:32:28

+0

@tandu我刚刚更新 – 2011-05-13 02:34:39

+0

@JD奥迪 - 您的片段中的第83行是什么? – Mahesh 2011-05-13 02:35:30

回答

1

这里的问题,是你调用错误的函数。 mysql_db_query应该是mysql_query

你也不需要在SET之后加括号。

关于sql注入,我建议你逃脱所有$_POST变量与mysql_real_escape_string

+0

!谢谢!!!!! – 2011-05-13 02:49:42

+0

不错的一个。我错过了那个 – 2011-05-13 02:51:37

2

UPDATE命令中,丢失括号。而已。请注意0​​。

更新

下面是最终代码应该如何看起来像:

function editAccount() { 
    $id = $_POST['id']; 
    $rep = $_POST['rep']; 
    $lastchange = date('mdY'); 
    $account = $_POST['account']; 
    $areacode = $_POST['areacode']; 
    $number = $_POST['number']; 
    $address1 = $_POST['address1']; 
    $address2 = $_POST['address2']; 
    $city = $_POST['city']; 
    $state = $_POST['state']; 
    $zip = $_POST['zip']; 
    $country = $_POST['country']; 
    $fax = $_POST['fax']; 
    $descmaker1 = $_POST['descmaker1']; 
    $descmaker2 = $_POST['descmaker2']; 
    $title = $_POST['title']; 
    $email = $_POST['email']; 
    $cvendor = $_POST['cvendor']; 
    $cequipment = $_POST['cequipment']; 
    $leaseexp1 = $_POST['leaseexp1']; 
    $leaseexp2 = $_POST['leaseexp2']; 
    $leaseexp3 = $_POST['leaseexp3']; 
    $leaseexp4 = $_POST['leaseexp4']; 
    $leaseexp5 = $_POST['leaseexp5']; 
    $leaseexp6 = $_POST['leaseexp6']; 
    $volume = $_POST['volume']; 
    $notes = $_POST['notes'];  

    mysql_query("UPDATE accounts 
        SET lastchange = '$lastchange', 
          account = '$account', 
          areacode = '$areacode', 
           number = '$number', 
          address1 = '$address1', 
          address2 = '$address2', 
           city = '$city', 
           state = '$state', 
           zip = '$zip', 
           fax = '$fax', 
          descmaker1 = '$descmaker1', 
          descmaker2 = '$descmaker2', 
           title = '$title', 
           email = '$email', 
          cvendor = '$cvendor', 
          cequipment = '$cequipment', 
          leaseexp1 = '$leaseexp1', 
          leaseexp2 = '$leaseexp2', 
          leaseexp3 = '$leaseexp3', 
          leaseexp4 = '$leaseexp4', 
          leaseexp5 = '$leaseexp5', 
          leaseexp6 = '$leaseexp6', 
           volume = '$volume', 
           notes = '$notes'   
     WHERE id = $id"); 
} 
+0

@Adrian哪个括号?我试图删除一些,它只是给了我更多的错误。 – 2011-05-13 02:40:43

+1

@JD:SET后面的括号。 – 2011-05-13 02:41:40

+0

是的,在更新命令中。 “SET”后面的一个正好在'$ notes'后面一个。 – 2011-05-13 02:42:50

0

检查mysql连接是否建立。 有些时候,可能也有问题

mysql_query("UPDATE accounts 
        SET (lastchange = '$lastchange', 
          account = '$account', 
          areacode = '$areacode', 
           number = '$number', 
          address1 = '$address1', 
          address2 = '$address2', 
           city = '$city', 
           state = '$state', 
           zip = '$zip', 
           fax = '$fax', 
          descmaker1 = '$descmaker1', 
          descmaker2 = '$descmaker2', 
           title = '$title', 
           email = '$email', 
          cvendor = '$cvendor', 
          cequipment = '$cequipment', 
          leaseexp1 = '$leaseexp1', 
          leaseexp2 = '$leaseexp2', 
          leaseexp3 = '$leaseexp3', 
          leaseexp4 = '$leaseexp4', 
          leaseexp5 = '$leaseexp5', 
          leaseexp6 = '$leaseexp6', 
           volume = '$volume', 
           notes = '$notes')    
     WHERE id = $id") 

这是更新查询,使用的mysql_query代替mysql_db_query

+0

'SET'后面的括号是错误的。 – 2011-05-13 03:11:49

1

According to PHP docs,弃用的功能mysql_db_query()至少需要两个参数的语法。首先是数据库名称,其次是SQL查询。您只指定了SQL查询。

resource mysql_db_query (string $database , string $query [, resource $link_identifier ]) 

所以你的情况:

mysql_db_query('yourdatabasename', "UPDATE accounts set...."); 

更常见的这些天是使用mysql_query(),这将使使用先前mysql_select_db()选择的数据库中。