У меня возникла проблема с классом базы данных, который я создал. Когда я пытаюсь отобразить данные, находящиеся в таблице, данные не отображаются, но он все еще передает базу данных-> select().Ошибка класса базы данных - php
<?php
class database {
private $DBhost = "localhost";
private $DBuser = "username";
private $DBpass = "password";
private $DBname = "database";
private $PDO = null;
private $stmt = null;
function __construct() {
$this->PDO = new PDO("mysql:host=" . $this->DBhost . ";dbname=" . $this->DBname . ";charset=utf8", $this->DBuser, $this->DBpass);
}
function __destruct() {
$this->PDO = null;
}
function select($query, $param = array()) {
try {
$this->stmt = $this->PDO->prepare($query);
if (count($param) != 0) {
$this->stmt->execute($param);
} else {
$this->stmt->execute();
}
} catch(Exception $ex) {
$this->error($ex);
return false;
}
}
function resultset() {
return $this->stmt->fetchAll();
}
function error($ex) {
die('Something broke :(');
}
}
?>
Я пытаюсь использовать это для отображения данных в таблице html, как показано на следующей странице.
<?php
include 'code/db.php';
$DB = new database();
?>
<html>
<head>
<title>List</title>
</head>
<body>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Phone number</th>
<th>Mobile number</th>
<th>Address</th>
<th>State</th>
<th>Post Code</th>
<th>Settings</th>
</tr>
<?php
$DB->select('SELECT * FROM owners ORDER BY first_name, last_name');
while($line = $DB->resultset()) {
echo "<tr>";
echo "<td>" . $line['first_name'] . "</td>";
echo "<td>" . $line['last_name'] . "</td>";
echo "<td>" . $line['email'] . "</td>";
echo "<td>" . $line['phone_number'] . "</td>";
echo "<td>" . $line['mobile_number'] . "</td>";
echo "<td>" . $line['address'] . "</td>";
echo "<td>" . $line['state'] . "</td>";
echo "<td>" . $line['post_code'] . "</td>";
echo '<td><a href="item-list?id=' . $line['id'] . '">Details</a><a href="edit-owner?id=' . $line['id'] . '"</a></td>';
echo "</tr>";
}
?>
</table>
</body>
</html>
Если вы могли бы помочь мне с этим, это было бы здорово.
Что происходит, когда изменяется пароль его базы данных? Хотя я согласен с тем, что создание всех этих глупых функций для упаковки функций PDO больно больше, чем помогает (и у меня есть разработчики, которые это делают, обычно те, кто не понимает _why_ PDO-функции делают то, что они делают) Я согласен с OP, что небольшой класс оболочки PDO может быть полезным. Особенно, когда классы (и, следовательно, пароли) хранятся вне каталога 'public_html'. – dotancohen
1. Я не понимаю ваш вопрос о пароле. 2. Я не понимаю ваше заявление о полезной обертке. –
Я указывал на преимущества наличия класса оболочки PDO. С одной стороны, мы можем изменить пароль, не используя Perl, чтобы изменить текст в сотнях или тысячах файлов. – dotancohen