2013-01-03 2 views
-2

데이터베이스에 데이터를 삽입하는 데 사용하려고하는 플렉스 응용 프로그램이 있습니다. 나는 내 데이터가 내 PHP 파일에 도달하고 내 쿼리의 모든 변수가 내 쿼리의 올바른 위치에 삽입된다는 것을 확신합니다.심각하게, 왜 내 SQL이 실행되지 않습니다 '-

하지만 : 아무 것도 모두 플렉스 및 PHP는 지금 시간을 검색하고, 내 데이터베이스에 입력되지 도착하지만 실수 찾을 수 없습니다 :

<?php 
include_once("Connection.php"); 

$go = true; 

if(isset($_GET['table'])){ 
    $tableNr = $_GET['table']; 
} else { 
    $go = false; 
} 

if(isset($_GET['gerechtId'])){ 
    $gerechtID = $_GET['gerechtId']; 
} else { 
    $go = false; 
} 

if(isset($_GET['aantal'])){ 
    $aantal = $_GET['aantal']; 
} else { 
    $go = false; 
} 

if($go){ 
$query = "INSERT INTO bestelling (Tafelnummer, StatusID) 
      VALUES (". $tableNr . ", 1); 

      INSERT INTO orders (bestellingID, gerechtID, aantal) 
      VALUES (@@IDENTITY, " . $gerechtID . ", " . $aantal . ");"; 
mysql_query($query); 
mysql_close(); 
echo($query); 
} 
?> 

내가 실수는 거기에 없다 꽤 확신을, 하지만 확실하기 만하면 쿼리가 실행됩니까?

+3

MySQL은 기본적으로 쿼리 당 1 개의 문을 가지고 있습니다. 따라서 개별 쿼리에서 각 명령문을 실행해야합니다. (설정을 변경하지 않았다고 가정) – Supericy

+2

또한 SQL 주입 취약점을 수정하십시오. 쿼리에서 사용하기 전에 게시/가져 오기/쿠키 바를 필터링해야합니다. – datasage

+0

또한, 사용중인 이전 PHP mysql API는 [PHP 5.5부터 더 이상 사용되지 않습니다.] (http://php.net/manual/en/mysqlinfo.api.choosing.php), 미래. 새로운 [mysqli] (http://php.net/manual/en/book.mysqli.php) API는 쿼리 당 여러 명령문을 지원합니다. –

답변

3

심각하게도 오류를 확인하지 않습니다. 그러면 먼저 다음을 심각하게 알게됩니다.

mysql_query($query) or die('Serious error: '.mysql_error()); 

심각하게 말하면 쿼리 당 하나 이상의 명령을 실행할 수 없습니다. 적어도 MySQL에는 없습니다.

또한 mysql_ * 사용을 심각하게 중단해야합니다. 그것은 진부하게 오래되고 비추천입니다. PDO 또는 MySQLi를 사용하십시오. 여기에 좋은 진지한 튜토리얼이 있습니다 : http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

관련 문제