语法使用数字时出错? PHP mysql

时间:2014-07-03 17:10:07

标签: php mysql get

我在做

时遇到问题
/test/test.php?SECTORPOSITION=13137&NAME=hibb&TYPE=Cluster&ISEXPLORED=true&GUID=13

我收到语法错误。

但是当我做的时候

?SECTORPOSITION=hey&NAME=hibb&TYPE=Cluster&ISEXPLORED=true&GUID=13

它运作正常吗?

这是我的代码。

<?php
include 'db.php';
    if(isset($_GET['SECTORPOSITION'])) {
        mysql_query("CREATE TABLE `".$_GET['SECTORPOSITION']."` ( Name INT, Type VARCHAR(30), IsExplored VARCHAR(30), SectorPosition INT, guid INT)");
    }


  if(isset($_GET['TYPE'])) {
  $sector = mysql_real_escape_string($_GET['SECTORPOSITION']) ; // escape your variable here .
  $type= mysql_real_escape_string($_GET['TYPE']) ; // escape your variable here .
  $name = mysql_real_escape_string($_GET['NAME']) ; // escape your variable here .
  $isexplored = mysql_real_escape_string($_GET['ISEXPLORED']) ; // escape your variable here 
  $guid = mysql_real_escape_string($_GET['GUID']) ; // escape your variable here 
  mysql_query("INSERT INTO $sector  (Name,Type,IsExplored,SectorPosition,guid) VALUES ('$name','$type','$isexplored','$sector','$guid') ") or die(mysql_error()) ;
}
    print('Added!');
?>

1 个答案:

答案 0 :(得分:4)

您的查询不一致:

 mysql_query("CREATE TABLE `".$_GET['SECTORPOSITION']."` ( Name 
                           ^---                        ^---

mysql_query("INSERT INTO $sector  (Name,Typ
                         ^^^^^^^---- no backticks

所以你的第一个查询是

CREATE TABLE `12345` ...

然后第二个变成

INSERT INTO 12345

这将是一个平坦的语法错误。

请注意,动态创建这样的表通常是一个非常糟糕的设计的标志。由于所有表格之间的字段相同,因此您的&#34;表格名称&#34;应该成为SAME表中的另一个字段:

e.g。 positions (id, sectorposition, name, etc.....)