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

我有一个脚本,它会根据几个因素生成一个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);

返回此:

You have an error in your SQL syntax; check the manual that corresponds to

your MariaDB server version for the right syntax to use near 'INSERT INTO

AAB_EVENT_SHIFTS ( EVENT_ID ,SHIFT ,' at line 24

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

for($i=1;$i<=$event->total_shifts($event_id);$i++) {

// echo $event->shift_exists($event_id,$i).'-'.$i.'::

';

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 '

'.$query[$i];

$result = mysqli_query($link, $query[$i]);

$i++;

echo '

'.mysqli_error($link);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值