Medoo Replace的使用:批量替换数据

replace方法:有三种调用方式

返回: [number] 返回受影响的行数

replace($table, $column, $search, $replace, $where)


$table 第一个需要传入的参数为字符串:String,即为要进行操作的数据表名

$column 第二个需要传入的参数为字符串或数组:String/array(),即为要进行操作的字段名,单个字段为String,多个字段为array()

$search 第三个需要传入的参数为字符串:String,即为准备要进行替换的内容

$replace 第四个需要传入的参数为字符串:String,即为要被批量替换为的内容

$where 第五个需要传入的参数为数组:array(),即为where条件,可不写


例:
$database->replace("account", "type", "user", "new_user", array(
	"user_id[>]" => 1000
));

以上代码会将account表中user_id大于1000的所有type字段里user替换为new_user,等同于如下SQL语句:

UPDATE `account` SET TYPE = REPLACE(`type`, 'user', 'new_user') WHERE `user_id` > 1000

replace($table, $column, $replacement, $where)


$table 第一个需要传入的参数为字符串:String,即为要进行操作的数据表名。

$column 第二个需要传入的参数为字符串或数组:String/array(),即为要进行操作的字段名,单个字段为String,多个字段为array()。

$replacement 第三个需要传入的参数为字符串:array(),即为准备要进行替换和要被批量替换为的内容,数组的键为:准备要进行替换的,值为:要被批量替换为的。

$where 第四个需要传入的参数为数组:array(),即为where条件,可不写。


例:
$database->replace("account", "type", array(
	"user" => "new_user",
	"business" => "new_business"
), array(
	"user_id[>]" => 1000
));

以上代码会针对字段的内容逐步进行多次替换,本例将account表中user_id大于1000的所有type字段里user替换为new_user,然后再将所有type字段里的business替换为new_business,等同于如下SQL语句:

UPDATE `account` SET TYPE = REPLACE(`type`, 'user', 'new_user'), TYPE = REPLACE(`type`, 'business', 'new_business') WHERE `user_id` > 1000

replace($table, $column, $where)


这个方法可以说是第二种方法的简写,易读性更强,它将第二种方法中的,字段名、要进行替换和要被批量替换为的内容压缩到一个二维数组中

$table 第一个需要传入的参数为字符串:String,即为要进行操作的数据表名。

$column 第二个需要传入的参数为字符串或数组:array(),即为字段名、要进行替换和要被批量替换为的内容,字段名为一维数组的键,一维数组字段名的键所对应的值,是要进行替换和要被批量替换为的内容组成的一个数组,而这个数组中,要进行替换的内容为键,要被批量替换为的内容为值,它们组成一个二维数组。

$where 第三个需要传入的参数为数组:array(),即为where条件,可不写。


例:
$database->replace("account", array(
	"type" => array(
		"user" => "new_user",
		"business" => "new_business"
	),
	"groups" => array(
		"groupA" => "groupB"
	)
), array(
	"user_id[>]" => 0
));

以上代码会针对字段的内容逐步进行多次替换,是第二种方法的一个简化写法,可提高阅读性,本例将account表中user_id大于0的所有type字段里user替换为new_user,然后将所有type字段里的business替换为new_business,再将所有groups字段里的groupA替换为groupB,等同于如下SQL语句:

UPDATE `account` SET TYPE = REPLACE(`type`, 'user', 'new_user'), TYPE = REPLACE(`type`, 'business', 'new_business'), groups = REPLACE(`groups`, 'groupA', 'groupB') WHERE `user_id` > 0