gpt4 book ai didi

php - 通过单个 php mysqli_query 函数运行多个查询

转载 作者:行者123 更新时间:2023-11-30 23:52:58 24 4
gpt4 key购买 nike

<分区>

我有一个脚本可以根据多种因素生成 SQL 插入或更新脚本。下面是它生成的脚本的字符串值:

INSERT INTO AAB_EVENT_SHIFTS ( EVENT_ID ,SHIFT ,START_TIME ,END_TIME 
,CREATE_USER ,CREATE_DATE ,MODIFY_USER ,MODIFY_DATE ) VALUES ( 6 ,1
,STR_TO_DATE('04/01/2016 10:00 am', '%m/%d/%Y %I:%i %p' )
,STR_TO_DATE('04/01/2016 11:00 am', '%m/%d/%Y %I:%i %p' ) ,14 ,now() ,14 ,now()
); INSERT INTO AAB_EVENT_SHIFTS ( EVENT_ID ,SHIFT ,START_TIME ,END_TIME ,CREATE_USER ,CREATE_DATE ,MODIFY_USER ,MODIFY_DATE ) VALUES ( 6 ,2 ,STR_TO_DATE('04/01/2016 11:00 am', '%m/%d/%Y %I:%i %p' ) ,STR_TO_DATE('04/01/2016 12:00 pm', '%m/%d/%Y %I:%i %p' ) ,14 ,now() ,14 ,now() );
INSERT INTO AAB_EVENT_SHIFTS ( EVENT_ID ,SHIFT ,START_TIME ,END_TIME ,CREATE_USER ,CREATE_DATE ,MODIFY_USER ,MODIFY_DATE ) VALUES ( 6 ,3
,STR_TO_DATE('04/01/2016 12:00 pm', '%m/%d/%Y %I:%i %p' )
,STR_TO_DATE('04/01/2016 1:00 pm', '%m/%d/%Y %I:%i %p' ) ,14 ,now() ,14 ,now() );

如果我在连接到数据库的 sql 编辑器中运行它,它运行得非常好,并插入所有预期的行。但是,当这样调用该查询时:

$result = mysqli_query($link,$query);

echo mysqli_error($link);

返回这个:

您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 24 行的“INSERT INTO AAB_EVENT_SHIFTS ( EVENT_ID ,SHIFT ,”附近使用的正确语法

我将查询的生成方式从创建多个查询的串联字符串更改为创建一个查询数组并一次运行一个查询 - 这似乎已经解决了这个问题。

        for($i=1;$i<=$event->total_shifts($event_id);$i++) {
// echo $event->shift_exists($event_id,$i).'-'.$i.'::<P>';
if($event->shift_exists($event_id,$i)) {
$query[$i] =
'UPDATE AAB_EVENT_SHIFTS '
. 'SET START_TIME = STR_TO_DATE(\''.$event->event_date($event_id).' '.$_POST['start_shift-'.$i].'\', '.'\'%m/%d/%Y %I:%i %p\' )'
. ', END_TIME = STR_TO_DATE(\''.$event->event_date($event_id).' '.$_POST['end_shift-'.$i].'\', '.'\'%m/%d/%Y %I:%i %p\' )'
. ',MODIFY_USER = '. get_session_user_id(session_id())
. ',MODIFY_DATE = now()'
. ' WHERE EVENT_ID = '.$event_id.' AND SHIFT = '.$i.'; ';

} else { $query[$i] =
'
INSERT INTO AAB_EVENT_SHIFTS
(
EVENT_ID
,SHIFT
,START_TIME
,END_TIME
,CREATE_USER
,CREATE_DATE
,MODIFY_USER
,MODIFY_DATE
)
VALUES
(
'.$event_id.'
,'.$i.'
,STR_TO_DATE(\''.$event->event_date($event_id).' '.$_POST['start_shift-'.$i].'\', '.'\'%m/%d/%Y %I:%i %p\' )
,STR_TO_DATE(\''.$event->event_date($event_id).' '.$_POST['end_shift-'.$i].'\', '.'\'%m/%d/%Y %I:%i %p\' )
,'. get_session_user_id(session_id()) .'
,now()
,'. get_session_user_id(session_id()) .'
,now()
);
';

}
}

$i = 1;
while($query[$i]) {
echo '<P>'.$query[$i];
$result = mysqli_query($link, $query[$i]);
$i++;
echo '<P>'.mysqli_error($link);
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com