繁体   English   中英

替换字符串PHP REGEX中的模式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM