相关疑难解决方法(0)

了解OOP - 如何在其他类中使用PDO连接

我想我在理解OOP如何工作方面遇到了问题.我已经改变了它的工作代码,但它不是我认为的那种方式.下面的场景(不,我不是自己创建一个用户登录,它真的只是本地开发人员更好地理解OOP):

我有一个database.php文件:

class Database {

    /* Properties */
    private $conn;
    private $dsn = 'mysql:dbname=test;host=127.0.0.1';
    private $user = 'root';
    private $password = '';

    /* Creates database connection */
    public function __construct() {
        try {
            $this->conn = new PDO($this->dsn, $this->user, $this->password);
        } catch (PDOException $e) {
            print "Error!: " . $e->getMessage() . "";
            die();
        }
        return $this->conn;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在这个类我正在创建一个数据库连接,我返回连接(对象?)

然后我有第二个类,着名的User类(实际上我不使用自动加载,但我知道它):

include "database.php";

class User {
    /* Properties */
    private $conn;

    /* Get database access */
    public function __construct() {
        $this->conn = …
Run Code Online (Sandbox Code Playgroud)

php oop pdo

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

使用SQLSrv和PHP 5.4.7连接到MSSQL时出错

我正在尝试使用PHP连接到MSSQL数据库,并在尝试连接时遇到非常令人沮丧的错误.它会在打印出以下消息之前加载一分钟:

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08001]: 
[Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [53]. 
Run Code Online (Sandbox Code Playgroud)

这是我的连接字符串:

DB::config("sqlsrv:Server={$dbHost} ; Database={$dbName}", $dbUser, $dbPass);
Run Code Online (Sandbox Code Playgroud)

在我的DB类中:

public static function config($dsn, $user, $pass)
    {
        self::$_pdo = @new PDO($dsn, $user, $pass);
        ...// intentionally left out
Run Code Online (Sandbox Code Playgroud)

我很困惑.我在php.ini文件中配置了以下模块:extension = php_pdo_sqlsrv_54_ts.dll.虽然我认为我安装正确,但我没有收到任何关于驱动程序无法正常工作的错误消息,这一点PHP没有打印任何内容:

if (function_exists( 'sqlsrv_connect' ))
    echo "hey";
Run Code Online (Sandbox Code Playgroud)

正如您从上面的错误消息中可以看到SQL Server Native Client 11似乎正在工作.我在Windows平台上.我试过禁用防火墙无济于事.我没有太多关于SQL服务器的信息,或者我会在这里分享它.

这是我第一次在Stack上发帖,所以如果我遗漏了一条关键信息,或者我没有以某种方式遵循礼仪,我很抱歉,但任何帮助都绝对值得赞赏.


另外,我应该补充一点,我已经做了太多的谷歌搜索,并没有取得任何成功.

php sql-server

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

标签 统计

php ×2

oop ×1

pdo ×1

sql-server ×1