我正在尝试与PDO和Singleton类建立数据库连接,但我在从数据库中获取数据时遇到问题.
我一直在阅读这篇文章,但我仍然不确定如何从我的数据库文件中调用另一个文件中的Singelton类并打印出结果.我现在得到的错误是Fatal error: Call to undefined function query()在我的db.php文件中,这是我的数据库文件中的最后一个函数.但是我相信功能是定义的.
任何帮助表示赞赏!
这是我的数据库(db.php)连接文件:
<?php
class Database
{
private $_db;
static $_instance;
private function __construct() {
$this->_db = new PDO('mysql:host=localhost;dbname=mvcuser', 'root', '');
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
private function __clone(){}
public static function getInstance() {
if (!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
public function query($sql) {
return query($this->_db,$sql);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的index.php文件中的代码:
<?php
require_once 'model/db.php';
$db = Database::getInstance();
$db->query('SELECT * FROM users');
if ($result = $db->query($query)) {
while ($row …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用PDO连接到我的数据库并在页面上显示一些博客帖子.但是我收到此错误消息:
致命错误:第61行的index.php中带有"无效数据源名称"消息的未捕获异常"PDOException"...
我一直在寻求帮助,但真的无法弄清楚出了什么问题,所以如果有人有任何想法,我们非常感谢!
我有一个单独的connect.inc.php文件,它包含在index.php文件中.
这是connect.inc.php文件:
<?php
class DB extends PDO
{
function database_connection() {
$db_host = "localhost";
$db_name = "blogdata";
$db_user = "username";
$db_pass = "password";
try {
global $db_host, $db_name, $db_user, $db_pass;
$pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
}
catch(PDOException $e) {
die( 'Query failed: ' . $e->getMessage() );
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这是index.php文件中的部分,在错误消息中指出:
<?php
require 'connect.inc.php';
$db = new DB('blogdata');
$query = "SELECT * FROM blogposts";
if ($result = $db->query($query)) {
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo ' …Run Code Online (Sandbox Code Playgroud) 我用准备好的语句插入数据.如何将变量分配给CURRENT_TIMESTAMP并绑定值?
我有一个数据库表,其中包含"name,lastfed,lastdoc和id"列.名为lastfed和lastdoc的2列是timestamp类型.我有一个功能,一旦我运行它,我想lastfed和lastdoc注册当前的日期和时间.
任何帮助赞赏!
$lastfed = CURRENT_TIMESTAMP;
$lastdoc = CURRENT_TIMESTAMP;
$query = $db->prepare("INSERT INTO test (`name`, `lastfed`, `lastdoc`, `id`) VALUES (?, ?, ?, ?)");
$query->bindValue(1, $name);
$query->bindValue(2, $lastfed);
$query->bindValue(3, $lastdoc);
$query->bindValue(4, $user);
Run Code Online (Sandbox Code Playgroud)