1

在这里找不到这个问题的确切答案,虽然它可能很简单(如果有答案,请指出我正确的方向)。

我正在从 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() 函数来替换结果吗?再次感谢您的回复!

4

1 回答 1

0

在 mysql 中,如果您在选择 * 后手动选择一个字段,它会覆盖该字段,因此如果您只希望在一个字段上运行替换并且您知道该字段您知道它是哪个字段,您可以将您的选择查询更改为(有点不优雅):

"select 
     *, 
     REPLACE(
         REPLACE(
             REPLACE(`data`.`YOURFIELDNAME`, '&', 'A'),
         ',', 'A'),
     '\'', 'A') 
 from 
     data 
 where a_data_id=".$ID." AND a_discard_data_from!=1";

这将删除这些字符。这不是很优雅,正如 Eggyal 指出的那样,你最好在前端这样做。

于 2012-08-27T16:26:48.877 回答