包含php变量的sql查询不起作用

时间:2013-04-29 22:14:22

标签: php mysql variables sql-insert

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

EDITED: $ FILTER_PARAMETERS =" $ variable1 $ variable2 $ varible3 ...";

其中$ variable1 $ variable2 $ varible3 ...是数字,我想将它们插入由昏迷分隔的同一个fielde中,如下所示:

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

如果我回复$ FILTER_PARAMETERS =" $ variable1 $ variable2 $ varible3 ...&#34 ;; ,我得到

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?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:-1)

查询结束时

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

你没有向右关闭,改变它:

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

您错过了正确的括号)并删除了第一个分号;只留下最后一个

修改

这是没有值和列的查询

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

只需删除双引号内的分号:

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