从使用 MySQL _FETCH 设置的字符串中删除双引号的最佳方法是啥?

Posted

技术标签:

【中文标题】从使用 MySQL _FETCH 设置的字符串中删除双引号的最佳方法是啥?【英文标题】:What is the best way to remove double quotes from strings set using MySQL _FETCH?从使用 MySQL _FETCH 设置的字符串中删除双引号的最佳方法是什么? 【发布时间】:2011-08-04 13:30:23 【问题描述】:

我有一个 php 脚本,用于在 ajax 调用之后从 mysql 数据库中检索数据。数据需要以字符串的形式返回到调用网页,该字符串表示要在散点图上显示的一系列 x,y 值。

php脚本需要输出到调用页面(将从xmlhttp.responseText中提取)所需的格式如下:

[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7]]

我得到的是:

[[0,"69.08"],[1,"53.53"],[2,"61.61"],[3,"72.04"],[4,"82.72"],[5,"103.76" ]]

我用来构建返回字符串的 PHP 代码是:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM))  

  $index[$i] = $i;
  $PointArray[0] = $i;
  $PointArray[1] = $row[1];
  $ReturnData[$i] = $PointArray;
  $i = $i + 1;


echo json_encode($ReturnData);

有趣的是,当我将数据回显到调用页面上显示的 html 表格而不是将其设置为 php 数组时,不会出现双引号。

我的问题有两个:

(1) 有没有比我想出的看起来有点笨拙的更优雅的方式来构建数据字符串?

(2) 删除双引号的最佳方法是什么 - 应该在服务器端完成还是在发起调用的网页上的 javascript 函数中完成?

非常感谢

【问题讨论】:

【参考方案1】:

如果您不希望出现引号 - 只是不要将字符串放入数组中;-)

将您的代码替换为类似(我在$row[1] 之前添加了(float) 修饰符):

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM))  

  $index[$i] = $i;
  $PointArray[0] = $i;
  $PointArray[1] = (float)$row[1];
  $ReturnData[$i] = $PointArray;
  $i = $i + 1;

或者更紧凑一点:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM))  
  $index[$i] = $i; // what is it used for?
  $ReturnData[$i] = array($i, (float)$row[1]);
  $i++;

【讨论】:

@nortyrich:如果我的回答对你有帮助 - 检查一下 ;-)

以上是关于从使用 MySQL _FETCH 设置的字符串中删除双引号的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

mysql_ fetch_array 和 mysql_fetch_assoc 的区别

ReactJS 从 API fetch 中获取令牌字符串

取消设置 mysql_fetch_field 对象值 MYSQL PHP

使用“mysql_fetch_row”从数据库中检索结果并使用 PHP 和 mysqli 插入数组?

从mysql转换为mysqli(mysql_fetch_array)[重复]

Fetch:使用获取响应设置变量并从函数返回