我在做
时遇到问题/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!');
?>
答案 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.....)