我在下面做了一个UPDATE语句,其中包含 sprintf()和 implode([string glue],array pieces)函数。这些对于整个UDPDATE语句都可以正常工作,直到我需要
SET table.column = field
我使用多维数组在表格,列和字段中存储用户输入值,并且无法确定格式化方法这些数组在 implode()语句中,以免违反其参数。
implode()函数无法将数组作为 [string glue] ,而数组片段无法接受其参数中的字符串,但因为声明
SET table.column = field
在。和 = 的每个可能 [string glue] 值之间包含一个数组值,我无法使用 implode() 功能,不会影响UPDATE语句语法结构,但重复的。或 = 运算符或格式不正确的表,列和字段值。
示例:
$query = sprintf(
"UPDATE %s
SET %s %s %s
WHERE %s C.id = '$id';",
implode(", ", array_keys($updateFields)),
implode(" ", array_keys ($updateFields)),
implode("." + array_keys($columns)),
implode(" = " $columns),
implode(".id = C_id AND ", array_keys($updateFields)),
)
结果
UPDATE A, B, C
SET A B C 1.2.3.4.5.6.7.8.9.10.11.12.13 a = b = c = d = e = f = g = h = i = j = k = l = m
WHERE A.id = C_id AND B.id = C.id AND C._id = ' '
............
我应该如何考虑解决这个问题?
如果有兴趣的话,我很乐意提供更多信息。