使用PHP更新mySQL中多个表的行内的字段

时间:2015-01-13 11:56:19

标签: php mysql sql-update printf implode

我在下面做了一个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 = ' '

............

我应该如何考虑解决这个问题?

如果有兴趣的话,我很乐意提供更多信息。

0 个答案:

没有答案