小编Lis*_*isa的帖子

与PDO和Singleton类的数据库连接

我正在尝试与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)

php singleton pdo

6
推荐指数
2
解决办法
1万
查看次数

未捕获的异常'PDOException'消息'无效的数据源名称'

我正在尝试使用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)

php mysql database pdo exception

4
推荐指数
1
解决办法
3万
查看次数

使用预准备语句插入CURRENT_TIMESTAMP

我用准备好的语句插入数据.如何将变量分配给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)

php mysql timestamp prepared-statement

1
推荐指数
1
解决办法
7851
查看次数