2013-01-03 43 views
-2

我有一个flex应用程序,我试图用它来将数据插入到我的数据库中。我完全确信我的数据到达了我的php文件,并且查询的所有变量都被插入到查询中的正确位置。严重的是,为什么我的sql没有执行' -

但是:没有获取输入我的数据库,现在已经,无论是在Flex和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注入漏洞。在查询中使用它们之前,您需要过滤post/get/cookie变量。 – datasage

+0

另外,请注意,您正在使用的旧PHP PHP API [自PHP 5.5以来已弃用](http://php.net/manual/en/mysqlinfo.api.choosing.php),并将在未来。较新的[mysqli](http://php.net/manual/en/book.mysqli.php)API _does_支持每个查询多个语句。 –

回答

3

说真的,你甚至没有检查错误。首先,你会认真的知道:

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

说真的,你不能对每个查询执行多个命令。至少不在MySQL中。

另外,你应该认真的停止使用mysql_ *。这是严重的旧的和不赞成的。使用PDO或MySQLi。这里有一个很好的认真教程:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

相关问题