簡體   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