Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在mySQL中跨多个表更新行中的字段_Php_Mysql_Sql Update_Printf_Implode - Fatal编程技术网

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

使用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=字段 包含一个介于和=的所有可能

我在下面做了一个更新声明,其中包含了sprintf()内爆([string glue],数组片段)函数。在我需要之前,这些方法在整个UDPDATE语句中都很有效

SET table.column=字段

我正在使用多维数组将用户输入值存放在字段,并且无法确定在内爆()语句中格式化这些数组的方法,以便不违反其参数

infrade()函数不能将数组作为其[string glue],并且数组片段不能在其参数中接受字符串,但因为

SET table.column=字段

包含一个介于=的所有可能的[string glue]值之间的数组值,如果不使用重复的=运算符或格式不正确的表,我无法使用内爆()函数而不影响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 = ' '

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


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

不幸的是,没有好的解决方案:(你可以做的是用set语句构建一个数组,并将其内爆。比如将“table.column=field”作为数组中的一个值?是或%s,但当出现问题时,这可能会使调试更加困难。