有一个数组
['pole' => 'str',
'pole1' => 4,
'pole2' => 15]
您需要获取一个字符串和一个数组,如下所示:
`pole` = ?, `pole1` = ?, `pole2` = ?
['str', 4, 15]
这是针对pdo中的更新请求
$PDO->SQL("UPDATE `table` set `pole` = ?, `pole1` = ?, `pole2` = ?", ['str', 4, 15])
总的来说,并不难,只是如果我这样做的话,代码会相当长。循环遍历数组...
也许有一种更简单的方法,我不知道如果对于第二行你只按原样插入数组是否会起作用。也许不会,因为键不是有序的......
在原始数组中,键是一个字段,值是需要写入该字段的内容......
选项1,foreach:
创建一个空数组
$q_fields_arr = []
在数组末尾添加一个装箱值$q_fields_arr[] = "
$k= ?";
使用“,”作为分隔符将数组收集到字符串中implode(', ',$q_fields_arr)
选项2,array_map:
用它
array_keys
来获取钥匙。然后,迭代所有键 - ,用所需的文本 ( =?)
array_map
构建返回值{key}
然后
implode
- 从数组中形成一个字符串。该函数
array_values
将返回数组的值,没有命名键。结果
选项 3:PDO 占位符
在这种情况下,我们不需要从原始数组中删除键。
结果:
应观众要求:
这里内爆被放入一个循环中。如果我们有一个没有键的数组,我们可以执行 $k!=0 检查
在这种情况下,我们访问数组的内部指针
next()
来检查下一个元素是否存在,以避免不必要地添加“,”分隔符。还使用了三元 if 运算符,只是为了表明它的存在)