我有一个包含mysql查询的字符串:
$string = "UPDATE [table1] SET value = 1 WHERE id = 1";
我想用这个数组的值改变[table1]:
$table['table1']='pages';
$table['table2']='products';
etc
结果应为:
mysql_query( $string ); // "UPDATE pages SET value = 1 WHERE id = 1"
我已经尝试了以下但没有:
mysql_query( str_replace( '[', '$table[', $string ));
mysql_query( str_replace( array_keys( "[$table]" ), array_values( $table ), $string ));
mysql_query( str_replace( array_keys( "[".$table."]" ), array_values( $table ), $string ));
修改 这种方式有效,但没有最简单的方法吗?
str_replace( explode( ',', ( '['.implode( '],[',array_keys( $table ) ) .']' ) ), $table, $string );
答案 0 :(得分:1)
这个怎么样?
$table['table1']='pages';
$table['table2']='products';
$string = "UPDATE [table1] SET value = 1 WHERE id = 1";
foreach($table as $key => $value){
$string = str_replace('['.$key.']', $value, $string);
}
答案 1 :(得分:0)
简单方法怎么样?
$string = "UPDATE ".$table['table1']." SET value = 1 WHERE id = 1";