2011-05-13 6 views
0

이 스크립트에 문제가 있습니까? 나는 그 문제를 이해할 수 없다!MySQL 업데이트 쿼리가 작동하지 않습니다.

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

에러 :

경고 : 라인 /home/content/53/7311353/html/cca/accounts/include/processAct.php에 mysql_db_query()에 대한 잘못된 파라미터 개수 83

줄 : WHERE id=$id");

+0

어떤 오류가 발생합니까? –

+0

@tandu 방금 업데이트했습니다. –

+0

@JD Audi - 83 번째 줄은 무엇입니까? – Mahesh

답변

1

문제를 :

업데이트

여기에 최종 코드를 같이하는 방법입니다. mysql_db_querymysql_query이어야합니다.

SET 뒤에 괄호가 필요하지 않습니다.

SQL 삽입과 관련하여 $_POST 개의 변수를 모두 mysql_real_escape_string으로 이스케이프해야합니다.

+0

! 고맙습니다!!!!! –

+0

좋은 것. 나는 그것을 놓쳤다 –

2

UPDATE 명령에서 괄호를 잃습니다. 그게 전부 야.

또한, 제발, SQL Injection하시기 바랍니다. 잘못된 함수를 호출하는 것입니다, 여기

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 괄호? 일부를 지우려고했지만 더 많은 오류가 발생했습니다. –

+1

@JD :'SET' 뒤의 괄호. –

+0

예, 업데이트 명령 내에 있습니다. 하나는'SET' 바로 다음이고'$ notes' 다음에 하나. –

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_db_query

+0

'SET' 후의 괄호는 틀렸다. –

1

According to PHP docs, mysql_db_query() 적어도 두 개의 매개 변수를 사용되지 않는 기능을 대신하여 mysql_query를 사용하는 구문입니다. 첫 번째는 데이터베이스 이름이고 두 번째는 SQL 쿼리입니다. SQL 쿼리 만 지정했습니다. 따라서 귀하의 경우

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

:

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

더 일반적인 요즘은 이전에 mysql_select_db()으로 선택한 데이터베이스의 사용을 만들 것이다, mysql_query()을 사용하는 것입니다.

관련 문제