2013-03-15 5 views
0

2 개의 업데이트 쿼리를 하나의`$ 결과로 실행하려고 시도하고 있습니다. 가능하면 가능합니까? 누군가가 아래 쿼리에서 어디서 잘못 표시되는지 알려주십시오. 당신이 당신의 UPDATE들에 더 WHERE 조항이 없기 때문에두 개의 업데이트 쿼리를 하나씩 실행하는 방법은 무엇입니까?

$query = "INSERT INTO ptb_users (id, user_id, first_name, last_name, email, password) 
    VALUES('NULL','NULL','" . $firstname . "','" . $lastname . "','" . $email . "',MD5('" . $password . "'))"; 

mysql_query($query) or dieerr(); 
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id=ptb_users.id UPDATE ptb_users SET ptb_users.account_type= \"Client\""); 
+0

을 제쳐두고 mysql_로 시작하는 PHP 함수는 PHP 5.5.0부터 사용되지 않습니다. 그렇게 할 수있는 위치에 있다면 MySQLi 또는 PDO 확장을 대신 사용하도록 코드를 업데이트하십시오. – dnagirl

+0

''NULL''은 리터럴 문자열 *' 'NULL''을 데이터베이스에 저장합니다. 'NULL'을 원한다면 따옴표를 잃어 버리십시오. –

+1

'WHERE' 절이 없으면'UPDATE'는 테이블의 모든 레코드를 변경합니다. – Mchl

답변

0

,이처럼 그들을 결합 할 수 있습니다 :

UPDATE ptb_users SET ptb_users.user_id = ptb_users.id, 
    ptb_users.account_type = 'Client' 

편집을 : 당신이 행을 UPDATE하려는 경우, 당신은 단지 INSERT 에드, 다음 WHERE ptb_users.id = $id을 추가하십시오 (mysql_insert_id()을 사용하여 ID를 얻을 수 있습니다).

$query = "INSERT INTO ptb_users (id, user_id, first_name, last_name, email, password) 
    VALUES('NULL','NULL','" . $firstname . "','" . $lastname . "','" . $email . "',MD5('" . $password . "'))"; 

mysql_query($query) or dieerr(); 
$id = mysql_insert_id(); 
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id = ptb_users.id, 
     ptb_users.account_type = 'Client' WHERE ptb_users.id =".$id); 
+0

where 절을 삽입하거나 실행중인 현재 쿼리에 대해 account_type을 'client'로만 업데이트하라는 내용의 업데이트가 가능합니까? 그렇지 않으면이 테이블에있는 모든 account_types 변경하고이 원하지 않아 –

+0

@JamesTanner : "현재 쿼리가 실행되고"의미합니까? 어떤 행을 어떤 값으로 업데이트하고 싶습니까? 한 행에 두 값을 모두 업데이트하려면 'SET' 절 다음에''WHERE'column' ='value'''' *를 추가하십시오. –

+0

내 사이트에는 회원 용과 고객 용의 두 가지 등록 양식이 있습니다. 이 쿼리는 클라이언트의 등록 양식의 일부로 실행되고 값이 삽입되고 결과가 열을 업데이트하여 id = user_id가 잘게 비트가되도록 집중하고 싶습니다.이 특정 등록에 대해 말할 결과가 필요합니다./insert where 'Member'가 테이블의 account_type의 기본값입니다.이 등록을 위해 '클라이언트'로 업데이트해야합니다. –

0

Mysql * 함수는 더 이상 사용되지 않습니다. 대신 PDO/mysqli을 사용하십시오.

보안상의 이유로 mysql * 함수는 여러 쿼리를 실행할 수 없습니다. 그러나 Mysql *을 사용하면 실행하기 전에 명령문을 준비해야합니다.

+1

하지 않습니다. mysql_query()'는 복수의 쿼리를 실행할 수 없다. – Mchl

+0

좋은 호출. 나는 그 진술을 거꾸러 뜨려야한다. mysqli를 사용하면 세미 콜론을 넣을 수 있습니다. –

+0

@DevinYoung : 나는 * 매우 * 의심합니다. MySQLi는 하나의 명령으로 여러 개의 쿼리를 실행할 수있게합니다. –

관련 문제