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