php - 我无法返回 MySQL 数据

标签 php mysql ajax

这是我的 JS 代码:

$.ajax({
            url: 'login.php',
            type: 'POST',
            data: {
            loginName:  $("#loginName").val(),
            loginPass:  $("#loginPass").val()
            },
            dataType: 'json', 
            success: function(data){
                if(data.success){
                    $("#Message").fadeIn(function(){
                        $(this).html(data.message);
                    });
                }
                else
                {
                    $("#Message").fadeIn(function(){
                        $(this).html(data.message);
                    });
                }
            }
        });

这是 PHP:

<?php
$data = array();
$data['success'] = true;
$data['message'] = "Here is the message";
echo json_encode($data);
?>

如果我有这个就没问题,但是如果我将 php 文件编辑成这样:

<?
    include "db.php";
    $data = array();
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        if($_POST['loginName'] == "" && $_POST['loginPass'] == "")
        {
            @$v = mysql_query("SELECT * FROM users WHERE name LIKE '$registerName'");
            @$p = mysql_num_rows($v);
            if ($p == 0){
                @$v = mysql_query("INSERT INTO users VALUES('','$registerName','$registerPass')");
                $data['message'] = "Byly jste úspěšně zaregistrováni.";
                $data['success'] = true;
            }
            else
            {
                $data['message'] = "Tento uživatel je tu již zaregistrován.";
                $data['success'] = false;
            }

        echo json_encode($data);
    }
?>

ajax 什么都不做……它只是发送数据,但不发送任何警报……:( 如果我只使用 php,我可以控制这个 mysql 事件及其工作...

最佳答案

首先我想欢迎回来小Bobby Tables

现在言归正传,仔细看看下面这行代码:

if($_POST['loginName'] == "" && $_POST['loginPass'] == "")

下一个议程,你的错误抑制不正确,你应该在你的配置文件上使用 error_reporting 来控制你的错误,并使用 error_handler记录您的应用程序的错误。

您还应该注意,如果满足某些条件,您只会响应一个结果,我建议您无论使用什么数据或发布方法,都应响应,为每种可能性提供错误消息,因为在开发阶段,这会使事情变得容易多了。

我会这样写代码:

include "db.php"; //error_reporting(0);
$data = array();
$user_info = array_map("mysql_real_escape_string",$_POST);

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(!empty($user_info['loginName']) && !empty($user_info['loginPass']))
    {
        $v = mysql_query(sprintf("SELECT * FROM users WHERE name LIKE '%s'",$user_info['loginName']));

        if(mysql_num_rows($v) > 0)
        {
            //Update Here
            //Output Success here/ json_encode
            exit;
        }
    }
}
//Output Error here/ json_encode

关于php - 我无法返回 MySQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998721/

相关文章:

php - 使用 .htaccess 重定向注册 URL

PHP - 使用 cookie 加载 CSS,但未读取 cookie?

mysql - 帮助进行 MySQL 查询

mysql - 选择数组、子查询和多行结果

JavaScript 最佳实践 : Syncing Browser Windows

php 从 csv 中获取数据并再次将它们写入同一个 csv

php - 在商店页面上的产品标题中添加一定长度的中断

mysql - 使用 GROUP CONCAT 和 LEFT JOIN 计算行的总和

jquery - 将数据数组从 Json 传递给 wcf 函数作为参数

javascript - 如何在 ajax 调用成功函数期间将 html 内容插入到特定的 div 元素?