2011-05-13 46 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()選擇的數據庫中。