我有一个用于 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/en/function.str-replace.php
如果查看手册,您会发现参数的顺序是 Search、Replace、OriginalString。您正在尝试执行 OriginalString、Search、Replace——这显然行不通。因此,请尝试以正确的顺序进行操作:
$build_values_m = str_replace("''","NULL",$build_values_m);
然后,"''"
的所有实例都将替换为字符串 "NULL"
。
关于php - 替换字符串 PHP REGEX 中的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859137/