如何继续数据库语句

时间:2015-07-17 08:54:07

标签: php jquery json

使用其中一个教程,我设法使用PHP,JSON和jQuery创建工作数据库检索

现在我的问题是,如果我有多个查询语句,我想执行什么是最佳解决方案?

我尝试在不同的函数中打开第二个连接,并将数据作为数组发送到数组中但不起作用。

database.php

<?php

function getDbConnection() {
  $db = new PDO(DB_DRIVER . ":dbname=" . DB_DATABASE . ";host=" . DB_SERVER, DB_USER);
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
  return $db;
}
function home_ratings() {
    $db = getDbConnection();
    $stmt1 = $db->prepare("select * from table1");

    $isOk1 = $stmt1->execute();

     $results_home = array();

     if ($isOk1) 
        {
            $results_home = $stmt1->fetchAll();
        } 
    else 
        {
            trigger_error('Error executing statement.', E_USER_ERROR);
        }
    $db = null; 
    return $results_home;

}
?> 

get.php

<?php
require('constant.php');
require('database.php');

$home = home_ratings();
//$top_rest = top_ratings();
//$newr = new_ratings();

//echo json_encode($home);
echo json_encode(array('home' => $home));
?>

info.js

$( document ).ready(function() {

    $.get( "php/get.php")
    .done(function(data) {  
                    var results = jQuery.parseJSON(data);

                    $.each(results, function(i, value) {
                    //do what i need to do here
                   })
                }); 
});

1 个答案:

答案 0 :(得分:1)

如果您使用相同的方法连接到同一数据库,则只需要一个数据库连接对象。而不是让getDbConnection()的函数使$db变量全局化并在函数中使用它(您可能需要在函数中放置一行global $db;以确保它可以访问全局变量)。

database.php文件的外观示例:

<?php
  $db = new PDO(DB_DRIVER . ":dbname=" . DB_DATABASE . ";host=" . DB_SERVER, DB_USER);
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

function home_ratings() {
    global $db; // $db scope of global
    $stmt1 = $db->prepare("select * from table1");

    $isOk1 = $stmt1->execute();

     $results_home = array();

     if ($isOk1) 
        {
            $results_home = $stmt1->fetchAll();
        } 
    else 
        {
            trigger_error('Error executing statement.', E_USER_ERROR);
        }

    return $results_home;
}
?>