内爆计数大于2的数组时发生PHP插入错误
我在尝试将一行插入mysql数据库时遇到了一个奇怪的问题 这就是我的想法。列出了一系列练习,您可以添加一个数量,并检查您希望将此练习添加到的日期(星期日、星期一、星期二、星期三、星期四、星期五、星期六),从而将其添加到您的日记中 这是我的密码内爆计数大于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_'.
$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的想法(这意味着我可能一周三天做这个练习……这就是错误所在)
谢谢
- 莱顿
$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。