Jquery - 从mysql查询中获取数据

时间:2014-01-15 15:56:00

标签: php jquery mysql ajax

好的,所以我不是百分之百,这是实现我想要的最佳方式,但是这里有。

我有一些PHP代码来处理SQL查询,我希望通过AJAX请求将其传递给SQL值。最初我用PHP做了所有这些,即我有一个叫做'query'的PHP函数,它会执行我传入它的SQL命令。这很好用,我可以使用数组,但是我想对结果做更多​​的事情并感觉需要javascript。因此,要执行PHP代码,我正在尝试创建一个AJAX请求,现在只输出结果。

这是我的PHP,它位于query.php

<?php
    static $handle;
    if (!isset($handle))
    {
        try
        {
            $handle = new PDO("mysql:dbname=" . DATABASE . ";host=" . SERVER, USERNAME, PASSWORD);
            $handle->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
        }
        catch (Exception $e)
        {
            trigger_error($e->getMessage(), E_USER_ERROR);
            exit;
        }
    }

    $statement = $handle->prepare($sql);
    if ($statement === false)
    {
        exit;
    }

    $results = $statement->execute($parameters);

    if ($results !== false)
    {
        $array = $statement->fetchAll(PDO::FETCH_ASSOC);
        echo json_encode($array);
    }
    else
    {
        // return false;    do nothing for now
    }
?> 

这是处理AJAX请求的基本JS函数:

function query (sql) {
  $.ajax({                                      
    url: 'query.php',                        
    data: { sql: sql },
    dataType: 'json',
    success: function(data)          
    {
        console.log(data);
    } 
  });
} 

当我传递一个简单的SQL查询来测试它时,我根本就没有在控制台中得到任何东西。

关于我做错了什么或有更好方法的提示的任何线索?

1 个答案:

答案 0 :(得分:0)

我不能发表评论,所以我写了一个答案:

您是否从$sql设置了$_GET? 试试这个:

function query (sql) {
  $.post('query.php', { sql: sql }, function(data){
        console.log(data);
  }, 'json');
}

并在query.php中:

<?php
  $sql = isset($_POST['sql']) ? $_POST['sql'] : '';
  ...