2013-02-21 2 views
1

기본적으로 내가하려고하는 것은 ID가 6 인 클라이언트를 삭제하고 50 명의 클라이언트가있는 경우 클라이언트를 업데이트하려는 경우입니다. ID 번호는 50에서 6입니다.동시에 MySQL에서 데이터를 삭제하고 업데이트하는 방법

이것은 PHP에서의 코드입니다.하지만 적어도 2/-s를 실행하지는 않습니다. 적어도 이것이 문제라고 생각합니다. 그렇지 않으면 SQL 구문이 정상적으로 작동합니다.

public function delete() { 
    $last=$this->numrow; //contains last ID works fine 

    if (isset ($_GET['x'])) { 
     mysql_query('DELETE FROM proba WHERE ID ='.$_GET['x']); 
     mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].'WHERE ID='.(int)$last); 
    } 
} 

$_GET['x']에는 클릭 한 ID가 포함되어 있습니다. 하지만 처음에만 mysql_query이 실행되어 어떻게 두 번째 코드가 실행될 수 있습니까?

다른 질문은 <a href="munka/index.php?x=5" > [-] </a>의 x = 5를 $_POST과 함께 사용할 수 있습니까?

+7

당신은 당신이 그것으로하려는 이노 MySQL의 DB 엔진을 사용하여 트랜잭션 지원을 사용하기 때문에 모두 삭제하고 업데이트 실행 함께 wuth 미스없이 COMMIT, 그리고 경우에 아무것도 잘못하기 ? 정말로이 일을해야합니까? 처음에는 이미 기존 항목의 ID를 변경하는 것이 좋습니다. 일부 데이터를 참조하기 위해 클라이언트의 ID를 사용하는 테이블이 더 많이 있다고 가정 해보십시오. 그곳에있는 모든 ID도 업데이트해야합니다. 그런 일을 정말로하고 싶니? – oktopus

+0

왜이 작업을 수행 하시겠습니까? ID가 기본 키입니까? 그리고 그것은 자동 증분입니까? –

+6

Jesus .... 당신이 우리의 코드 주입에 취약하고 쓸모없는 API를 사용하고 있습니다 ... [PDO 또는 IMO 전용 PDO를 확인하십시오] (http://stackoverflow.com/questions/12859942/why-shouldnt- i-use-mysql-functions-in-php/14110189 # 14110189) 또한 이것을 확인하십시오 (SQL injection에 대해 알고 싶습니다) [http://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient- to-prevent-sql-injection/12202218 # 12202218) –

답변

0

대부분의 경우 첫 번째 쿼리에서 PHP 오류가 발생했을 가능성이 큽니다. PHP 오류 로그를 확인하십시오. 두 번째 질문 $_GET에 대한

는 (양식을 제출 보통에) HTTP 게시물에 게시 된 매개 변수를 가져 오는 데 사용됩니다

munka/index.php?x=5

$_POST 예를

의 URL에서 매개 변수를 사용하는 데 사용됩니다.

+1

[가져 오기 및 게시에 대한 자세한 내용은 여기를 확인] (http://www.brightmeup.info/article.php?a_id=6) –

0

은없는 5의 기록 where 절 이전에 phpMyAdmin에서

mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].' WHERE ID='.(int)$last); 
-1
if (isset($_GET['x'])) { 
     mysql_query('DELETE FROM proba WHERE ID =' . $_GET['x']); 
     mysql_query('ALTER TABLE `proba` DROP `ID`;'); 
     mysql_query('ALTER TABLE `proba` ADD `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST'); 
    } 

시도를 공백으로 업데이트 쿼리를 삭제 변경 및 ID 열을 삭제하고 ID 열을 다시 작성하십시오. 그것이 작품입니다. 더 나은

0

은 삭제 변경 ROLLBACK 얻을

관련 문제