这是我的带有SQL查询的PHP代码,但是输出与预期不符:
$sql = 'INSERT INTO `event_footers` (`event_id`, `order`, `file_id`, `url`) VALUES '; foreach($all_footers as $key => $val){ $sql .= '('.(int)$data['event_id'].', '.$key + 1 .', '.(int)$val['file_id'].', "'.addslashes($val['url']).'"), '; } $sql = rtrim($sql, ', '); var_dump($sql); exit;
而且我得到这样的SQL查询:
`INSERT INTO `event_footers` (`event_id`, `order`, `file_id`, `url`) VALUES 1, 2135, "http://11.lt"), 1, 2136, "http://22.lt"), 1, 2140, "http://44.lt")`
(VALUES之后的第一个在哪里?
(
+并.具有相同的运算符优先级,但保持关联。第一次串联后的意思是:
+
.
'(' **。** (int)$ data ['event_id']
该字符串已添加到您的密钥中,例如
"($data['event_id']" + $key
因此,该字符串在该数字上下文中转换为整数并 消失 。要解决此问题,请()在您的加法前后加上括号。
()