Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内爆计数大于2的数组时发生PHP插入错误_Php_Mysql_Arrays_Insert_Implode - Fatal编程技术网

内爆计数大于2的数组时发生PHP插入错误

内爆计数大于2的数组时发生PHP插入错误,php,mysql,arrays,insert,implode,Php,Mysql,Arrays,Insert,Implode,我在尝试将一行插入mysql数据库时遇到了一个奇怪的问题 这就是我的想法。列出了一系列练习,您可以添加一个数量,并检查您希望将此练习添加到的日期(星期日、星期一、星期二、星期三、星期四、星期五、星期六),从而将其添加到您的日记中 这是我的密码 $addDiary = array(); $addTimestamp = array(); $addDiary[] = '('.$current_user->id.', '.$_POST['exid_'.$i].', '.$_POST['qty_'.

我在尝试将一行插入mysql数据库时遇到了一个奇怪的问题

这就是我的想法。列出了一系列练习,您可以添加一个数量,并检查您希望将此练习添加到的日期(星期日、星期一、星期二、星期三、星期四、星期五、星期六),从而将其添加到您的日记中

这是我的密码

$addDiary = array();
$addTimestamp = array();
$addDiary[] = '('.$current_user->id.', '.$_POST['exid_'.$i].', '.$_POST['qty_'.$i].', '.$calories_mod.', '.implode('.', $addTimestamp).')';             
$queryAddDiary = mysql_query("INSERT INTO LHNZ_FT_DIARY (USER_ID, EXERCISE_ID, TIME, CALORIES, TIMESTAMPS) VALUES ".implode(',', $addDiary));
我已经回显了addDiary数组和addTimestamp数组,我觉得很好

$addTimestamp:1311206400.1311292800.1311379200

$addDiary:(2,1,16781206400.1311292800.1311379200)

如果我的$addTimestamp数组的长度为1或2,那么该查询工作得很好。但是,当长度大于2时,它会夹住此错误

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行的“.1311379200”附近

现在。如果使用“.”或“:”作为$addTimestamp的内爆,则会显示此错误。如果我使用字母或“u”,它会抛出这个错误

“字段列表”中的未知列“1311206400_1311292800_1311379200”

任何关于如何使用长度大于2的$addTimestamp的想法(这意味着我可能一周三天做这个练习……这就是错误所在)

谢谢

  • 莱顿

MySQL查询中的字符串值必须用单引号括起来

而不是:

$addDiary[] = '('.$current_user->id.', '.$_POST['exid_'.$i].', '.$_POST['qty_'.$i].', '.$calories_mod.', '.implode('.', $addTimestamp).')'; 
做:


尽管我强烈建议您在将每个值粘贴到sql查询之前,也要将其传递到()中。

MySQL查询中的字符串值必须用单引号括起来

而不是:

$addDiary[] = '('.$current_user->id.', '.$_POST['exid_'.$i].', '.$_POST['qty_'.$i].', '.$calories_mod.', '.implode('.', $addTimestamp).')'; 
做:


尽管我强烈建议您在将每个值粘贴到sql查询之前,也要将其传递给()。非常感谢你。非常感谢:]在查询中直接使用POST数据是个坏主意——正如Kami所说,您对SQL注入持开放态度。请不要在新代码中使用mysql_*函数。它们不再被维护,并被正式弃用。而是学习PDO或MySQLi。在查询中直接使用POST数据是个坏主意——正如Kami所说,您对SQL注入持开放态度。请不要在新代码中使用mysql_*函数。它们不再被维护,并被正式弃用。而是学习PDO或MySQLi。