【问题标题】:Cannot display table record in html pagehtml页面无法显示表格记录
【发布时间】:2015-02-06 16:49:36
【问题描述】:

我正在尝试将表中的记录调用到 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();
}

}

?>

【问题讨论】:

    标签: html class oop pdo record


    【解决方案1】:

    有很多小问题导致此代码无法正常工作。

    最大的问题是您正在尝试使用两个不同的数据库。有已弃用的 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 2014-11-30
      • 2015-07-14
      • 2020-08-06
      • 1970-01-01
      相关资源
      最近更新 更多