Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery-从mysql查询中获取数据_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php Jquery-从mysql查询中获取数据

Php Jquery-从mysql查询中获取数据,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,好的,所以我不是100%认为这是实现我想要的最好的方法,但现在开始 我有一些PHP代码来处理SQL查询,我希望通过AJAX请求在SQL值中传递它。最初,我是用PHP来完成所有这些工作的,也就是说,我有一个名为“query”的PHP函数,它将执行我传递给它的SQL命令。这很好,我可以使用数组,但是我想对结果做更多的工作,并感觉需要javascript。所以,为了执行PHP代码,我尝试创建一个AJAX请求,现在只输出结果 这是我的PHP,它位于query.PHP中 <?php stat

好的,所以我不是100%认为这是实现我想要的最好的方法,但现在开始

我有一些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
    }
?> 
当我传递一个简单的SQL查询来测试它时,我只是在控制台中没有得到任何东西


有没有关于我做错了什么的线索或更好方法的建议?

我无法评论,所以我写了一个答案:

您是否从
$\u GET
设置
$sql
? 试试这个:

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

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

您正在发送什么SQL?您直接从web应用程序发送SQL,而不是将其抽象出来,这似乎有点奇怪,但您可能有自己的理由(在不了解更多信息的情况下无法对该方法进行投票)。一个简单的字符串可以测试,如“SELECT*from tbl_Contact,其中ID='20'”,如果您直接在mysql客户端中运行该字符串,它返回结果?当您直接转到query.php时,是否会得到一个空页面?$sql变量在哪里初始化?在使用之前,您可能想执行类似$sql=$\u POST[“sql”]的操作?
<?php
  $sql = isset($_POST['sql']) ? $_POST['sql'] : '';
  ...