2013-04-29 24 views
-1

有人能告诉我我的查询出了什么问题吗? 我省略了table_name中的一些字段,因为我现在不会使用它们,可能会晚一些。包含php变量的sql查询不起作用

EDITED: $ FILTER_PARAMETERS =“$ variable1 $ variable2 $ varible3 ...”;

其中$变量1 $变量2 $ varible3 ...是数字,我想将其插入到昏迷分开的相同fielde,像这样:

if (isset($_POST['variable1'])){ 
    $variable1= ($_POST['variable1'].', ');} 

如果我回声$ FILTER_PARAMETERS =“$变量1 $ variable2 $ varible3 ...“; ,我得到

1012,1025,1036,

就像我想它是filter_parameters领域内。

我的查询是这样的一个:

$query = "INSERT INTO `database_name`.`table_name` (
`id` , 
`field1` , 
`field2` , 
`field3` , 
`field4` , 
`field5` , 
`field6` , 
`field7` , 
`field8` , 
`field9` , 
`field10` , 
`field11` , 
`field12` , 
`field13` , 
`field14` , 
`field15` , 
`field16` , 
`field17` , 
`field18` , 
`field19` , 
`field20` , 
`filter_parameters` , 
`field22` , 
`field23` , 
`field24` 
) 

VALUES (NULL, '$field1', '$field2', '$field3', '$field4', '', '$field6', '', '', '$field9', '$field10', '$field11', '$field12', '$field13', '', '', '', '', '$field18', '$field19', '$field20', '$FILTER_PARAMETERS', '$field22', '$field23', '');"; 

此查询不以任何数据库的字段中插入数据。有任何想法吗?谢谢。

EDITE:

可能是问题是$ FILTER_PARAMETERS?

+0

这些变量'$ field1,$ field2 ...'是否填充了值? – Fabio 2013-04-29 22:15:52

+0

你没有在任何地方定义变量。因此它们全部为空/空白。 – Jage 2013-04-29 22:16:08

+0

如果查询没有输入空白值,那么你必须得到一些sql错误。你有没有得到任何sql错误..检查日志可能 – Dinesh 2013-04-29 22:17:17

回答

1

离开了ID字段,如果它被设置为自动递增。你也应该在MySQL中的字段上保留一个默认值,你可以用''填充,而不是每次都通过查询运行它。如果你有一个价值,然后把它放在那里,或者如果你不打算更新或插入它,就把它放弃。

$mysqli_conn = new mysqli($server_host, $user, $password, "database_name"); 

$mysqli_query = "INSERT INTO table_name (
`field1` , 
`field2` , 
`field3` , 
`field4` , 
`field6` , 
`field9` , 
`field10` , 
`field11` , 
`field12` , 
`field13` , 
`field18` , 
`field19` , 
`field20` , 
`field21` , 
`field22` , 
`field23` 
) 

VALUES ('$field1', '$field2', '$field3', '$field4', '$field6', '$field9', '$field10', '$field11', '$field12', '$field13', '$field18', '$field19', '$field20', '$field21', '$field22', '$field23')"; 

$mysqli_result_set = $mysqli_conn->query($mysqli_query); 
+0

更多信息请参阅手册[here](http://php.net/manual/en/mysqli.query.php) – Frank 2013-04-29 22:30:53

+0

删除了id和NULL,并在最后省略了不必要的字段和分号。仍然无法正常工作 – user2170133 2013-04-29 22:53:53

+0

你创建的连接,如我做了$ mysqli_conn,确定要使用的数据库,并执行使用$ mysqli_result_set和连接类查询功能为我演示了声明? – Frank 2013-04-30 00:03:29

-1

在您查询

22', '$field23', '');"; 

你不关闭右年底,这个改变:

22', '$field23', '')"); 

你缺少一个右括号)并删除第一个分号;刚离开最后的

编辑

这是一个没有价值观和列

$query = "INSERT INTO `database_name`.`table_name`() VALUES();"; 

查询只是删除双引号内的分号:

$query = "INSERT INTO `database_name`.`table_name`() VALUES()"; 
+0

为什么您认为在此文本字符串结尾后会丢失右括号? – Jocelyn 2013-04-29 22:24:15

+1

一个额外的paranthesis会产生一个错误。但查询结尾的分号不应该在那里。 – bestprogrammerintheworld 2013-04-29 22:26:30

+0

如果我以这种方式更改结尾,它会发生错误。我认为问题不在这里,因为我直接用phpMyAdmin插入数据,并复制粘贴查询。但仍然不起作用。 – user2170133 2013-04-29 22:30:39