[英]Replace pattern in string PHP REGEX
我有一个用于INSERT
命令的字符串。 当值为空时, INSERT
字符串中的相应位置将生成为:
VALUES ('', 'VALUE', '', '', '', 0, 1, '')
我想将''替换为NULL
以便数据库不再引发有关将varchar
转换为numeric
类型的错误:
VALUES (null, 'VALUE', null, null, null, 0, 1, null)
我尝试使用:
$build_values_m = str_replace($build_values_m, ", '', ", ", null, ");
但是,这会占用我的大多数INSERT
字符串,并且不能仅将NULL
替换为空值。
我怎样才能做到这一点?
看来您想将"''"
替换为"NULL"
,并且您试图这样做而无需看手册: http : //php.net/manual/zh/function.str-replace.php
如果您查看手册,将会看到参数的顺序为Search,Replace,OriginalString。 您正在尝试做OriginalString,Search,Replace-这显然行不通。 因此,尝试以正确的顺序进行操作:
$build_values_m = str_replace("''","NULL",$build_values_m);
然后,所有"''"
实例将替换为字符串"NULL"
。
您可以使用正则表达式替换函数preg_replace()
进行替换,如下所示:
$string = "VALUES ('','','VALUE HERE','',)";
$pattern = array();
$pattern[0] = '/\'\'/g'; // Match : ''
$replacement = array();
$replacement[0] = 'NULL';
preg_replace($pattern, $replacement, $string);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.