在这里找不到这个问题的确切答案,虽然它可能很简单(如果有答案,请指出我正确的方向)。
我从MySQL中提取一些数据,其中一些字符导致数据无法在终点显示。因此,我需要挑出这些特定字符并用允许的字符替换它们。具体来说,我需要改变& ,'和+。我必须从这个查询中做到这一点:
$query = "select * from data where a_data_id=".$ID." AND a_discard_data_from!=1";
我想知道我是否可以添加到此字符串,或者在此字符串之后添加一些规则来替换实例& ,'或+与另一个角色。
感谢您的期待!
注意:上面的字符串没有问题,它运行正常,我只是想添加它或之后的某些类型的代码将替换从查询中提取的数据中的某些字符
周边代码:
$arr="";
$main_arr="";
$query = "select * from data where a_data_id=".$ID." AND a_discard_data_from!=1";
$query .=" and last_update >= " . '"' . $dataDate . '"';
$table = mysql_query($query);
if (mysql_num_rows($table) > 0) {
while ($row = mysql_fetch_assoc($table)) {
foreach ($row as $key => $value) {
$arr[$key] = $value;
if ($key == "to_data_id") {
$array=mysql_fetch_array(mysql_query("select name,additional from details where data_id=".$value));
$arr["data_id"] = $array['additional'].".".$array['name'];
}
}
$main_arr[] = $arr;
}
}
$data = json_encode($main_arr);
如何将它放慢到这段代码会很棒,谢谢! (这段代码工作正常,只想知道我可以更改/添加什么来替换这些字符。)
更新:是否有人能够回答我如何能够使用strtr()函数替换结果?再次感谢您的回复!
答案 0 :(得分:0)
在mysql中,如果你在选择*之后手动选择一个字段,它会覆盖该字段,所以只要你想要运行的一个字段替换就可以了,你知道你知道哪个字段的字段你可以提前将您的选择查询更改为(有点不合适):</ p>
"select
*,
REPLACE(
REPLACE(
REPLACE(`data`.`YOURFIELDNAME`, '&', 'A'),
',', 'A'),
'\'', 'A')
from
data
where a_data_id=".$ID." AND a_discard_data_from!=1";
将删除这些字符。这不是很优雅,正如eggyal指出的那样,你最好在前端做这件事。