Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在记录中插入字符串…php…mysql_Php_Mysql_String_Function_Insert - Fatal编程技术网

在记录中插入字符串…php…mysql

在记录中插入字符串…php…mysql,php,mysql,string,function,insert,Php,Mysql,String,Function,Insert,我的主管给了我一个关于PHP和SQL的作业,我试图解决它,但都没有用。如何通过在指定字段中添加字符串来更新表中的记录?例如,如果列/字段中的记录为“P000M000D000”。如何在不替换整个字符串的情况下,在“M”或“D”之前添加“0”。更新查询将用添加的字符串替换该列中的整个记录,我不希望这样 有人知道我需要使用的字符串函数吗 开尔文使用replace功能,在该功能中,您可以在列中指定搜索字符串和替换字符串。确保使用where子句进行约束 update tablename set colna

我的主管给了我一个关于PHP和SQL的作业,我试图解决它,但都没有用。如何通过在指定字段中添加字符串来更新表中的记录?例如,如果列/字段中的记录为“P000M000D000”。如何在不替换整个字符串的情况下,在“M”或“D”之前添加“0”。更新查询将用添加的字符串替换该列中的整个记录,我不希望这样

有人知道我需要使用的字符串函数吗


开尔文

使用
replace
功能,在该功能中,您可以在列中指定搜索字符串和替换字符串。确保使用
where
子句进行约束

update tablename set colname = replace(colname,searchstring,replacestring) where something=something

replace
在中有说明。

由于您是初学者,我建议您分三步进行:

1。从要更新的表中检索字段。

2。使用PHP字符串函数以任何方式修改值。

3。使用简单的更新查询。


MySQL有很多漂亮的字符串函数:

我将使用的方法是使用
M
D
作为分隔符,并在使用子字符串索引前后提取零件。
请注意,
substring\u index
区分大小写

SET @sampledata = 'P111M2222D3333';
UPDATE table1 
SET col1 
    = CONCAT(substring_index(@sampledata, 'M', 1), '0M'                    /*P1110M*/
            ,substring_index(substring_index(@sampledata, 'D', 1), 'M',-1) /*222*/
            ,'0D' ,substring_index(@sampledata, 'D',-1))                   /*0D333*/
WHERE col2 = 1234;

嘿,杰夫,谢谢你的回复。你能解释一下吗。我对这些语言有点陌生。所以我要用什么来替换“searchstring”、“replacestring”和“something”?(见我上面的例子)@kelvin您打算如何在不使用更新查询的情况下更新表中的记录?@Jordan,这就是我为什么在这里问的原因,因为我不知道,我的老板也知道我不知道well@Kelvin啊,对不起,我得出了错误的结论。这需要ping数据库服务器两次,这对性能不是一件好事。
$fname = preg_split("/[\s]+/", $name); //splits on any number of space chars
$query  = "update contact set name='$fname' where uid=123";
$result = mysql_query($query);
SET @sampledata = 'P111M2222D3333';
UPDATE table1 
SET col1 
    = CONCAT(substring_index(@sampledata, 'M', 1), '0M'                    /*P1110M*/
            ,substring_index(substring_index(@sampledata, 'D', 1), 'M',-1) /*222*/
            ,'0D' ,substring_index(@sampledata, 'D',-1))                   /*0D333*/
WHERE col2 = 1234;