php-pdo与数据库没有连接

vm0i2vca  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(188)

我决定创建一个注册网页并将其与db连接,但我遇到了一个问题:
错误:sqlstate[hy000][1049]未知数据库“site”致命错误:未捕获错误:在c:\xampp\htdocs\sm\application\lib\pdomain.class中对null上的成员函数query()调用。php:20 stack 跟踪:#0 c:\xampp\htdocs\sm\application\lib\user.class.php(11):pdomain->selectpdo('注册','*','where login='ad....)#1 c:\xampp\htdocs\sm\home.php(4):用户->getuserwherelogin('admin')#2{main}在第20行的c:\xampp\htdocs\sm\application\lib\pdomain.class.php中抛出
我已经为此工作了一段时间,任何帮助都将不胜感激。
我有一个主要问题:

class PDOMain
{
    private $MPDO;

    function __construct($dbname = "site", $host ="localhost", $user ="root", $password ="")
    {
        try {
            $this->MPDO = new PDO ("mysql:dbname={$dbname};host={$host}", "{$user}", "{$password}");
            return $this->MPDO;
        } catch (PDOException $e) {
            echo "ERROR: " . $e->getMessage();
        }
    }

    function selectPDO($db, $cols, $where = "", $order = "", $limit = "")
    {
        $sql = "SELECT{$cols} FROM `{$db}` {$where} {$order} {$limit}";
        $rs = $this->MPDO->query($sql);
        $rs->execute();
        if ($where != "") {
            $row = $rs->fetchAll(PDO::FETCH_ASSOC);
            return $row;
        } else {
            $row = $rs->fetchAll(PDO::FETCH_ASSOC);
            return $row;
        }
    }
function insertPDO($db,$cols="",$values="")
{
if ($cols=="") echo "ERROR! </<br>";
$sql="INSERT INTO `{$db}`({$cols}) VALUES ({$values})";
$this->MPDO->query($sql);
}
function updatePDO($db,$what,$val,$where)
{
    $sql="UPDATE `{$db}` SET {$what}='{$val}' {$where}";
    $this->MPDO->query($sql);
}
function deletePDO($db,$where){
        $sql= "DELETE FROM `{$db}` {$where}";
        return $this->MPDO->query($sql);
}
}

我有一个php类用户:

require_once("PDOMain.class.php");
class User extends PDOMain{
    function __construct($table)
    {
        parent::__construct();
        $this->table=$table;
    }

    function getUserWhereLogin($login){
        $user=$this->selectPDO($this->table,"*","WHERE login='$login'");
        if(count($user)>0) return $user;
        else return 0;
    }
}

我在home.php中使用它:

require_once("application/lib/User.class.php");
$userObject = new User("sign_up");
$user=$userObject->getUserWhereLogin("admin");
print_r($user);

下面是一个屏幕截图,显示了我的表的模式

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题