我有一个如下的数组。
在这里我需要插入 ActionKey
以及 ActionValue
对应于相同的每个索引 AdId
(工业工程)
第0个索引-sms-213123和
第一索引呼叫-12313
我在尝试一些类似的东西,但没有成功。
$sDate = date("Y-m-d H:i:s");
$values = array();
$d_actionKey = $this->params()->fromPost('d_ActionKey');
$d_actionValue = $this->params()->fromPost('d_ActionValue');
$sql = "INSERT INTO `AdActions` (`CreatedDate`,`ActionKey`,`ActionValue`) VALUES";
foreach($values as $value) {
$values[] = "($sDate, $d_actionKey, $d_actionValue)";
}
我的表数据应该是这样的。
更新代码:
我需要从另一个表的最后一个插入值中获取adid。然后把最后插入的adid插入adactions
$adActionsInsert = $this->getAdLibraryTable()->saveAdd($dataArray);
$query='INSERT INTO `AdActions` (`AdId`,`CreatedDate`,`ActionKey`,`ActionValue`) VALUES ';
for($i=0; $i < count($adActionsArray['ActionKey']); $i++)
{
if($i!=0)
$query .= ', ';
$query .= sprintf("(%d,'%s', '%s', '%d')",
$adActionsInsert,
$adActionsArray['CreatedDate'],
$adActionsArray['ActionKey'][$i],
$adActionsArray['ActionValue'][$i]);
}
我可以得到最后一个插入值,如下所示(从模型文件)
$this->tableGateway->lastInsertValue;
3条答案
按热度按时间mwngjboj1#
如果要将$data数组插入表adactions。您可以这样构建查询。
这应该会给你一个这样的查询
jckbn6z72#
根据mysql中插入多行的方法,一次插入多行时的数据集应该用逗号分隔,如
也就是说,在结尾加一个逗号
$values[] = "($sDate, $d_actionKey, $d_actionValue)
你可以用substr
删除不需要的最后一条语句的逗号(注意sql注入)编辑
dataxy将是$d\u actionkey和$d\u actionvalue
uajslkp63#
我不明白你为什么用
自从你宣布
$values = array();
如果你的阵型像如果是数组,则循环$arr;