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)