我有以下编码,并希望将sql插入mysql,但我收到以下错误:
“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行''附近使用正确的语法** **
<?php
date_default_timezone_set('Hongkong');
include('fun.php');
$outlet="Da Da";
$officehrStr = "11:00"; // morning
$officehrEnd = "02:00"; // midnight
if (isset($_POST['confirm'])) {
$dt1=new DateTime($officehrStr);
$dt2=new DateTime($officehrEnd);
$values=array();
while ($dt1 <= $dt2) {
$values[]="('". $outlet ."','". $dt1->format('H:i') ."')";
$dt1->modify("+".$_POST['slot']." minute");
}
include('db.php');
$sql="INSERT INTO tb_timeslot (outlet,timeslot) VALUES ". implode(',',$values);
mysql_query($sql) or die(mysql_error());
mysql_close($conn);
?>
答案 0 :(得分:0)
如果这是SQL语法错误,我的猜测是这行的问题
$sql="INSERT INTO tb_timeslot (outlet,timeslot) VALUES ". implode(',',$values);
尝试使用此
进行更改$sql="INSERT INTO tb_timeslot (outlet,timeslot) VALUES (". implode(',',$values).");";
答案 1 :(得分:0)
通过添加以下编码“$ dt2-&gt; add(new DateInterval('PT86400S'));”$ dt2 = new DateTime($ officehrEnd);和($ dt1&lt; = $ dt2){“谢谢你所有宝贵的时间
答案 2 :(得分:-1)
请查看您的sql语句。
$sql="INSERT INTO tb_timeslot (outlet,timeslot) VALUES (". implode(',',$values).");";
您可以看到您尝试在两列(插座,时间段)中插入数据,但将值分配给1列。您必须分配2个值,如。
$sql="INSERT INTO tb_timeslot (outlet,timeslot) VALUES (". implode(',',$values).", '$replace_variable_name');";
请使用我的声明更新您的声明,但不要忘记使用您定义的值编辑“replace_variable_name”。
希望这会对你有所帮助。