尽管这可能很简单,但在这里找不到该问题的确切答案(如果有答案,请指出正确的方向)。
我正在从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()函数替换结果吗?再次感谢您的答复!
最佳答案
在mysql中,如果您在选择*后手动选择一个字段,它将覆盖该字段,因此只要您要在其中运行一个字段替换,并且您知道该字段是预先知道的字段,则可以将选择查询更改为(有点不优雅):
"select
*,
REPLACE(
REPLACE(
REPLACE(`data`.`YOURFIELDNAME`, '&', 'A'),
',', 'A'),
'\'', 'A')
from
data
where a_data_id=".$ID." AND a_discard_data_from!=1";
这将删除那些字符。这不是很优雅,正如Eggyal所指出的,最好在前端执行此操作。
关于php - 替换MySQL查询结果PHP中的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12144696/