我正在尝试制作一段代码,从我的mysql服务器检索数据并每秒刷新其内容而不刷新页面。
当我执行下面的代码时,屏幕上出现错误:
Warning: require_once(../cfg/db.php): failed to open stream: No such file or directory in \php\classes\update.php on line 9
Fatal error: require_once(): Failed opening required '../cfg/db.php' (include_path='C:\xampp\php\PEAR') in \php\classes\update.php on line 9
路径设置正确,因为当我包含不通过ajax调用的文件时,它可以工作。所以不知何故,ajax调用不想查看另一个目录。有人解决这个问题吗?
/pages/main.php
在此文件中正在初始化ajax调用。
$(document).ready(function(){
retrieveUpdate();
})
function retrieveUpdate(){
$.ajax({
type: 'post',
url: '../php/classes/update.php',
data: 'type=test',
dataType: 'json',
success: function(index){
console.log("LOG: "+index);
//alert(index[0]);
setTimeout(index,1000);
},
timeout: 1000,
error: function(error){
console.log(error);
}
})
}
/php/classes/update.php
require_once('../cfg/db.php'); // folder is /php/cfg/db.php
class Update
{
public function __construct(){
}
public function getUpdate(){
$db = new DB();
if($db->databaseConnection()){
$query_retrieve_update = $db->db_connection->prepare("SELECT update_id FROM update");
$query_retrieve_update->execute();
while($result_retrieve_update = $query_retrieve_update->fetch(PDO::FETCH_ASSOC)){
$json_retrieve_update[] = $result_retrieve_update;
}
print json_encode($json_retrieve_update);
}
}
}
$update= new Update();
if(isset($_POST['type'])){
if($_POST['type'] == 'test'){
$update->getUpdate();
}
}
/php/cfg/db.php
define("DB_HOST", "localhost");
define("DB_NAME", "xxx");
define("DB_USER", "xxx");
define("DB_PASS", "xxx");
class DB
{
public $db_connection = NULL;
public function databaseConnection(){
if($this->db_connection != NULL){
return true;
}else{
try{
$this->db_connection = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.'', DB_USER, DB_PASS);
return true;
}catch(PDOException $e){
$this->errors[] = DB_CONN_FAIL;
}
}
return false;
}
}
$db = new DB();
答案 0 :(得分:0)
我认为您需要添加__DIR__
。有关解释,请参阅How to use __dir__?
require_once(__DIR__.'/../cfg/db.php');