我正在创建一个文件来向我的Android应用程序显示我的数据库列表,但它让我犯了这个错误:
$.ajax({
url: "username.php?page=" + page,
success: function(username){
$('.twbs-content-default').text("Username: " + username);
}});
我不知道我的错误发生在哪里这是我的三个文件。
此文件将以json格式保存数据,以便安装 getstudentlist.php
<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\file_location\file_location\file_location\sql.php:40
Stack trace:
#0 C:\xampp\htdocs\android_p\function\getstudentlist.php(12): classes\server\sql->get_student_list()
#1 {main}
thrown in <b>C:\xampp\htdocs\android_p\classes\server\sql.php</b> on line <b>40</b><br />
这个将执行所有sql命令
sql.php
<?php
error_reporting( E_ALL );
include("../root/root.php");
use \classes\server\sql;
header("Content-Type: application/json");
$sql = new sql();
if($sql->get_student_list() != "")
{
$list = $sql->get_student_list();
echo "{\"students\":";
echo json_encode($list);
echo "}";
}
else
{
echo "no data output!";
}
?>
最后这个文件将与服务器连接 的config.php
<?php
namespace classes\server;
use \PDO;
class sql extends config
{
private $con = null;
private $sql = null;
private $db = null;
public function __construct()
{
if($this->connection() != false)
{
$this->con = $this->connection();
}
else
{
$this->con = $this->connection_error();
}
}
private function db_open()
{
return $this->con;
}
private function db_close()
{
return $this->con = null;
}
public function get_student_list()
{
try
{
$this->sql = "SELECT * FROM tbl_students
ORDER BY stu_lname DESC;";
$this->db = $this->db_open()->prepare($this->sql);
$this->db->execute();
$this->db->setFetchMode(PDO::FETCH_ASSOC);
$count_get_list = 0;
while($data = $this->db->fetchAll())
{
$getdata[] = $data;
$count_get_list++;
}
if($count_get_list > 0) { return $getdata; } else { return ""; }
$this->db_close();
}
catch(PDOException $x)
{
echo $this->connection_error();
}
}
}
?>
无需显示我的root.php文件导致该文件的作业只是连接所有文件。
希望你们能帮助我!
这意味着我很多。
答案 0 :(得分:1)
第一次调用get_student_list()
会将$con
变量设置为null
,因此在第二次调用期间会出现错误消息。可能值得将get_student_list()
的输出保存在变量中,然后随后使用变量...或者更改数据库类不要关闭连接。