MYSQL替换字符串不起作用

时间:2014-07-20 01:02:02

标签: php mysql

这是我脚本的一部分:

$posUnknown=$getpos.'/';
$posKnown=$getpos.'/'.$getblock;
$SQL="UPDATE worlds SET blocks=replace(blocks,SUBSTRING(blocks,CHARINDEX('%posUnknown',blocks),CHARINDEX('|',blocks,CHARINDEX('%posUnknown',blocks))-CHARINDEX('%posUnknown',blocks)),'$posKnown') WHERE name='$getworldname'";
$result=mysql_query($SQL);
  

我想要它做的是:找到" x10y20z9",找到" |"从" x10y20z9"的位置开始,减去" x10y20z9"的位置。从" |"的位置要找到多长的字符,用我得到的新块信息替换该空间中的所有内容。

" block"的内容例如:

  

x1y1z1 / 0 | x10y20z9 / 800 | x0y1000z90 / 5 | x4y6z7 / 1 | x1y100z1 / 46 | ...

我想让这个查询做的是替换,例如" x10y20z9 / 800"用" x10y20z9 / 5"。

变量仍然是一个例子,可以是: $ GETPOS =" x10y20z9" $ getblock =" 5" 通过这种方式,我可以在那个位置寻找区块,即使我不知道他的价值,我所知道的只是他的位置" x10y20z9",我不知道"之后是什么? /"但是通过这个查询,我认为我能够找到" /"之后的内容。并用我得到的新$ getblock替换它,但由于某种原因它似乎根本不做任何事...... 我知道这部分脚本不能防止SQL注入,但这只是我正在做的一个实验,只要我看到它工作,我就会保护它免受它的影响。

0 个答案:

没有答案