php
  • mysql
  • 2011-07-17 4 views 1 likes 
    1

    내 스크립트가 내 테이블에서 행을 삭제하지 않는 이유를 찾는 데 문제가 있습니다.삭제 기능이 mySQL 오류를 던지고

    각 사용자는 임의의 키가 할당되어 있습니다. 임의의 키를 사용자에게 ...

    <?php 
    
    $userRand = $_GET['Rand']; 
    
    $delUser = mysql_query("DELETE from users WHERE randomkey = '" . mysql_real_escape_string($userRand)); 
         if(! $qResult) 
          { 
           die('Could not delete data: ' . mysql_error()); 
          } 
         elseif($qResult) 
          { 
           echo "deleted"; 
          } 
    
    ?> 
    

    다음과 같은 출력 ...

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''111111111' at line 1 
    
    +1

    관련이 없지만 삭제 작업을 위해서는 POST를 사용해야하며 GET이 아니어야합니다. 이것은 몇몇 문제 (URL에있는이 스크립트를 가진 이미지와 같은)를 막을 것입니다. – regilero

    +0

    사실, 수정을위한 POST는 검색을 위해 _only_를 얻습니다. – Wrikken

    답변

    2

    당신은 당신의 PHP 코드에서 닫는 ' 누락하고 있다는 동일 어디 테이블에서 삭제 행을 말할 필요 .

    $delUser = mysql_query("DELETE from users WHERE randomkey = '" . mysql_real_escape_string($userRand) . "'"); 
    
    1

    SQL 문자열을 닫지 않습니다.

    $delUser = mysql_query(
        sprintf("DELETE from users WHERE randomkey = '%d'", mysql_real_escape_string($userRand) 
    ); 
    
    관련 문제