replace方法:有三种调用方式

1、一次性批量替换字段的数据:五个参数

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

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

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

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

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

第五个需要传入的参数为数组: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



2、多次批量替换字段的数据:四个参数

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

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

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

要被批量替换为的内容,数组的键为:准备要进行替换的,值为:要被批量替换为的

第四个需要传入的参数为数组: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



3、多次批量替换字段的数据:三个参数

replace($table, $column, $where)

要进行替换和要被批量替换为的内容压缩到一个二维数组中

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

要进行替换和要被批量替换为的内容,字段名为一维数组的键,一维数组字段名的键所对应的值,是要进行替换和要被批量替换为的内容组成的一个数组,而这个数组中,要进行替换的内容为键,要被批量替换为的内容为值,它们组成一个二维数组

第三个需要传入的参数为数组: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