返回 json 数组的 PHP 在 javascript 中显示为 Null

2024-01-08

我有一个 ajax 调用,它将数据发送到 php 脚本并返回数据。如果我在 php 脚本中回显数据,我可以在 javascript 中很好地提醒它。但如果我将其作为 json 返回,则警报将不显示任何内容。

我的 JavaScript

  $.ajax({
                type: "POST",
                url: url,
                async: false,
                data: {1:'Home', 2:'About', 3:'Contact'},
                success: function(data){
                            alert(data);
                         //manipulate returned data here
                ));

                }
            });

my php

function get_latest() {
    $stack = array(); 
    foreach($_POST as $key => $value) {
        $tmpRec = db_fetch_object(db_query('SELECT * FROM node_revisions WHERE nid = "%s"', $key));
        $arr = array($key => array('timestamp' => $tmpRec->timestamp, 'body' => $tmpRec->body));
        array_push($stack, $arr);   
    }

   echo '<pre>' . print_r($stack,1) . '</pre>'; //works and comes up in alert
    echo json_encode($stack); //Shows nothing


}

还有其他方法可以做到这一点吗?我需要服务器以我可以在 javascript 中操作的格式发送回数据。


正如评论中所要求的,这里是使用 PDO 的参数化查询的示例。

$sql=new PDO("mysql:host=127.0.0.1;dbname=name","user","password"); 
$query="Select * from Northwind where Id=:ID"; 
$stmt=$sql->prepare($query);
$stmt->bindParam(':ID',$random_Id); 
$stmt->execute(); 
$dr=$stmt->fetch();
$sql=null;

让我们逐行回顾一下。

$sql=new PDO("mysql:host=127.0.0.1;dbname=name","user","password");

$sql 成为一个新的 PDO 对象(pdo 可以支持多种类型的数据库(在本例中我们使用 MYSQL)。

$query="Select * from Northwind where Id=:ID;

请注意,我们不是提供 Northwind 表中的实际 ID,而是提供“:ID”。

$stmt=$sql->prepare($query);

有趣的部分来了。准备语句将我们的查询字符串发送到 SQL Server。此时,服务器知道我们将运行的 sql 命令,但还不知道变量的值。

$stmt->bindParam(':ID',$random_Id);

然后,bindParam 发送 $random_Id 的值来替换 ':ID'。

$stmt->execute(); 
$dr=$stmt->fetch();

然后执行我们的查询,并将结果放入 $dr 中。您可以像哈希表一样从 $dr 中获取数据。假设 Northwind 表如下所示:

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Id     | int         | NO   | PRI | NULL    |       |    
| Name   | varchar(10) | NO   | UNI | NULL    |       |
| Passwd | varchar(50) | NO   |     | NULL    |       |
| Salt   | varchar(50) | NO   | UNI | NULL    |       |
+--------+-------------+------+-----+---------+-------+

我们想要“Name”的值。我们会输入这样的内容:

$userName=$dr['Name'];


$sql=null;

该行破坏 PDO 对象,将其从内存中释放并关闭数据库连接。

以这种方式执行 SQL 有两个优点。首先是速度。如果您需要运行上面的查询,我不知道使用 6 个不同的 ID 运行 6 次,您可以在准备语句之后执行类似的操作:

for($i=0;$i<=6;$i++)
{
 $stmt->bindParam(':ID',$i);
 $stmt->execute;
}

服务器已经有了主查询,所以我们只需向其发送更改的内容。如果我们这样做来插入许多记录,它会比将整个查询放入循环中要快得多。

第二个好处是它使 SQL 注入变得不可能(这是我使用它的主要原因)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回 json 数组的 PHP 在 javascript 中显示为 Null 的相关文章

  • 从谷歌加载 jquery 不起作用(对我来说)

    啊 我是个可怜的菜鸟 下面的 html 文档没有提醒任何人我的求助 有人知道为什么吗 这对我有用
  • 使用 jQuery 将文本分解到随机位置

    有一些 jQuery 示例 介绍如何内爆文本 如下所示 http jsfiddle net doktormolle dNXVx http jsfiddle net doktormolle dNXVx 我怎样才能做到相反 我想将跨度元素中的字
  • 使用 Javascript 基于 Cookie 的重定向

    我正在尝试根据 cookie 的存在创建重定向 所以当用户连接到我的网站时jonathanstevens org他们第一次被重定向到jonathanstevens org landing 代码部分 Global js function cr
  • jqGrid 3.4 中的自定义数据工具提示

    我一直在使用优秀的 jqGrid 插件 它运行得很好 不过最近 我被要求为网格实现一些自定义工具提示 现在文档 http www secondpersonplural ca jqgriddocs index htm非常彻底 但它没有解决如何
  • 这种日期时间格式有简单的转换吗?

    我正在使用 jQuery 从 JSON feed 中检索数据 并且作为 feed 的一部分 我获得了 datetime 属性 例如 2009 07 01 07 30 09 我想将此信息放入 javascript Date 对象中以方便使用
  • gmap.js 覆盖层上的 MouseOver 事件?是否可以?

    我在用着gmap js http hpneo github io gmaps examples html我正在尝试在我创建的覆盖标记上创建鼠标悬停事件 这是一个 jsFiddle gt http jsfiddle net LXv87 htt
  • jquery - 如何根据我的滚动位置滚动顶部动画到下一个可见的 div/类?

    如果标题有点模糊 请原谅我 因为我不知道如何写下来 基本上 我们有一个包含 6 个 场景 的页面 他们都有班级 scene和不同的 ID 例如 scene1 scene2 etc 首先 我们必须动态更改每个场景的颜色 gt 场景 1 是浅色
  • 在 IOS 设备上制作动画时,2 个相互堆叠的动画元素会发生变化(z 索引位置)吗?

    JSFIDDLE http fiddle jshell net 6gdrQ 18 我有 2 个动画元素 一种是简单的旋转脚本 它像硬币一样旋转徽标的中间部分 另一个动画是中间部分翻转时您看到的徽标后面的粒子画布烟雾动画 我遇到的问题是画布烟
  • 关闭 Bootstrap 模式 onclick

    我使用 Bootstrap 模式让用户在将商品添加到购物车之前选择产品选项 我之前在这种情况下使用过它们 没有任何问题 但这个没有按预期关闭 当用户单击 添加到购物车 按钮时 会发生一些事情 我认为问题就在那里 首先 一些脚本检查某些字段是
  • 如何在Jquery数据表中选择一行

    我在用数据表 http datatables net 在我的应用程序中 每当用户单击任何行时 我想突出显示它并从所选行中选择一些值 oTableTools sRowSelect single fnRowSelected function n
  • 更新 Parse.com 中的一行

    我所拥有的是 当单击编辑按钮时 两个输入字段中的值将创建一个新行 并删除旧行 下面是我使用的代码 但我想要的是更新原始行而不是删除原始行 实例 http jsbin com uyonek 2使用下面的代码是如何工作的 editBtn onc
  • 标题的固定高度和更改宽度(HTML 表格)

    我需要确保表格标题的高度是固定的 并且宽度是根据标题单元格内容进行调整的 标题文本最多显示两行 我们如何使用样式来做到这一点 另外 我想确保表行的宽度与标题行的宽度相同 即标题行决定宽度 注 目前 交易部门负责人别名 是按行排列的 它需要分
  • JQuery:如何自动完成“城市,州”?

    Question 怎么用啊JQuery 自动完成插件 http docs jquery com Plugins Autocomplete建议地点 City State 用于输入字段 意思是 有人想输入 伊利诺伊州芝加哥 所以他们开始打字 C
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • jQuery 或 JavaScript 中的“$”符号是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中 符号的含义是什么 https stackoverflow com questions 1150381 what is the meaning of sign in javas
  • 使用 jQuery UI 图标

    jQuery UI 在精灵图像中提供了方便的图标 看到主题滚轮 http jqueryui com themeroller 我有一个input我想要时钟图标的元素 带有类 ui icon clock 作为背景图像 怎样才能有一个背景图标in
  • 如何从代码隐藏文件中的asp.net用户控件注册(调用)jQuery函数?

    如何从代码隐藏文件中的asp net用户控件注册 调用 jQuery函数 您可以使用ClientScriptManager RegisterStartupScript http msdn microsoft com en us librar
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • Jquery 点击事件在设备(ipad、iphone ..)中的 li 上不起作用

    Jquery 单击事件在设备中的 li 上不起作用 我尝试使用 click 和 touchstart 事件 但是使用 touchstart 时的问题是我无法向下滚动 div 当我尝试通过单击 li 向下滚动时 它会被选中 有没有办法使用任何
  • jQuery可排序发布数据,但没有数据

    谁能告诉我我在这里缺少什么 我的数据似乎总是空的 我做错了什么 document ready function nav sortable connectWith nav axis y update function event ui var

随机推荐