使用PHP在mySQL中跨多个表更新行中的字段
我在下面做了一个更新声明,其中包含了sprintf()和内爆([string glue],数组片段)函数。在我需要之前,这些方法在整个UDPDATE语句中都很有效 SET table.column=字段 我正在使用多维数组将用户输入值存放在表、列和字段,并且无法确定在内爆()语句中格式化这些数组的方法,以便不违反其参数 infrade()函数不能将数组作为其[string glue],并且数组片段不能在其参数中接受字符串,但因为 SET table.column=字段 包含一个介于和=的所有可能的[string glue]值之间的数组值,如果不使用重复的或=运算符或格式不正确的表,我无法使用内爆()函数而不影响UPDATE语句语法结构,列和字段值 例如:使用PHP在mySQL中跨多个表更新行中的字段,php,mysql,sql-update,printf,implode,Php,Mysql,Sql Update,Printf,Implode,我在下面做了一个更新声明,其中包含了sprintf()和内爆([string glue],数组片段)函数。在我需要之前,这些方法在整个UDPDATE语句中都很有效 SET table.column=字段 我正在使用多维数组将用户输入值存放在表、列和字段,并且无法确定在内爆()语句中格式化这些数组的方法,以便不违反其参数 infrade()函数不能将数组作为其[string glue],并且数组片段不能在其参数中接受字符串,但因为 SET table.column=字段 包含一个介于和=的所有可能
$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 = ' '
我应该如何考虑解决这个问题
如果有人感兴趣,我很乐意提供更多信息。不幸的是,没有好的解决方案:(你可以做的是用set语句构建一个数组,并将其内爆。比如将“table.column=field”作为数组中的一个值?是或%s,但当出现问题时,这可能会使调试更加困难。