MySQL Php语法错误,查看手册

我的代码一直有问题,而且我一直在收到这个错误。 你的SQL语法有错误; 请检查与您的MySQL服务器版本相对应的手册,以找到在第1行的[[table_name]]附近使用的正确语法

我的代码如下:

 <?
//indicate the database you want
$db_name="test";

//connect to database
$connection = @mysql_connect("localhost","root","") or die (mysql_error());
$db = @mysql_select_db($db_name,$connection) or die (mysql_error());
//start the sql statement
$sql = @"CREATE TABLE $_POST[table_name] (";


for ($i =0;$i < count($_POST['field_name']);$i++){
    $sql .=$_POST['field_name'][$i]." ".$_POST['field_type'][$i];
    if ($_POST["field_length"][$i] !="") {
        $sql .= " (".$_POST ["field_length"][$i]."),";
    } else {
        $sql .= ",";
    }
}
//clean up
$sql = substr($sql,0,-1);
$sql .= ")";
//execute
$result = mysql_query($sql,$connection) or die(mysql_error());

//get a good message for success
if ($result) {
    $msg = "<P>".$_POST['table_name']." has been created!</p>";
    }
    ?>

我有一个单独的表格名称和字段数量,一个单独的PHP文件,用于其他数据库的东西,当我尝试在另外两个文件之后运行这个文件时,它给我的本地主机带来麻烦。

在回复编辑了$ sql和$ _POST的语句之后,我收到了该消息,

“CREATE TABLE $ _POST [table_name]”... $ _ POST [table_name]“您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,查找在[[table_name]附近使用的正确语法。 ..hey char(1))'在第1行“


看起来像$_POST[table_name]不会替换您的查询尝试中的值

$sql = "CREATE TABLE ". $_POST['table_name']." (";

您必须将table_name放入'中,因为您要访问$ _POST ['table_name']。

这就是为什么你的查询必须如此开始:

“CREATE TABLE”。$ _ POST ['table_name']。“。

你应该总是使用$ _POST []或$ _GET []值来防止SQL注入。

使用函数mysql_real_escape_string($ _ POST ...)进行转义或使用PDO准备好的语句。

另外mysql _...已被弃用。 切换到mysqli _ ..!

链接地址: http://www.djcxy.com/p/69763.html

上一篇: MySQL Php Syntax Error, Check the manual

下一篇: PHP/ MySQL: Query not processing (syntax error near x on line 1)