我正在尝试将表中的记录调用到html中以创建管理页面,以便可以更新内容。我无法得到记录。我是全新的,所以任何帮助都表示赞赏。我的表名是tblContent,我的数据库名是data1。表格中只有一行,PageID为1。
home.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo mysql_result($rs,0,”PageTitle”);?></title>
<link rel="stylesheet" type="text/css" href="origstyle.css">
</head>
<body>
<div id="container">
<h1>Site Heading</h1>
<?php
require_once 'classes.php';
try {
$conn = new PDO("mysql:host=$host;db_name=$db_name", $db_username, $db_password);
$rs = mysql_query("getData");
echo mysql_result($rs,0,”Content”);
} catch (PDOException $pe) {
die("Could not connect to the database $db_name :" . $pe->getMessage());
}
?>
</div>
</body>
</html>
classes.php
<?php
//Enter your database connection details here.
$host = 'localhost'; //HOST NAME.
$db_name = 'XXXXdbName'; //Database Name
$db_username = 'XXXXuserName'; //Database Username
$db_password = 'XXXXpass'; //Database Password
try
{
$pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
}
catch (PDOException $e)
{
exit('Error Connecting To DataBase');
}
class database
{
function __construct($pdo)
{
$this->pdo = $pdo;
}
function getData()
{
$query = $this->pdo->prepare('SELECT * FROM data1');
$query->execute();
return $query->fetchAll();
}
}
?>
答案 0 :(得分:0)
有很多小问题阻止了这段代码的运行。
最大的问题是您正在尝试使用两个不同的数据库库。有一个已弃用的mysql
库,其中所有函数都以mysql_
开头,然后是PDO。将所有mysql
函数替换为PDO
对应函数。
我接下来要注意的是,您似乎在考虑将方法名称传递给查询函数(mysql_query"myData"
),但事实并非如此。您可以在类的实例上调用该方法。首先,您创建一个实例,就像您为PDO对象所做的那样,然后调用方法。
$database = new database()
$rs = $database->getData()
我注意到的第三件事是你正在创建两次PDO对象。没有必要在home.php
中创建实例,所以只需摆脱它(以及与之相关的try / catch内容)。
第四件事是轻微的。您还应该将您的班级名称大写。
把这些放在一起,你得到这样的东西:
home.php:
require_once "classes.php";
$rs = $database->getData();
// Code that turns $rs into HTML
// Sorry, I don't know PDO well enough to
// say what that is.
// I do know that a simple echo will not suffice.
classes.php:
$host = "localhost"
$db_name = "";
$db_username = "";
$db_password = "";
class Database {
function __construct($pdo) {
$this->pdo = $pdo;
}
function getData () {
$query = $this->pdo->prepare('SELECT * FROM data1');
$query->execute();
return $query->fetchAll();
}
}
try {
$pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
} catch (PDOException e) {
exit('Error Connecting To DataBase');
}
$database = new Database($pdo);