gpt4 book ai didi

PHP DBlib PDO 问题

转载 作者:可可西里 更新时间:2023-10-31 23:38:11 25 4
gpt4 key购买 nike

我正在尝试通过 php 连接到 MSSQL 服务器,但我的 pdo 连接给我带来了困难和我并不真正理解的错误。我在下面粘贴的代码一周前工作得很好,突然间它就停止了,没有任何人改变任何东西。我仍然可以连接到服务器并直接从命令行运行查询,但我在 php 中没有同样的运气。有人看到我遗漏的东西吗?我已经在这上面花了太多时间,看起来我在原地转圈。

首先,这是我从 PDOException 中得到的错误

SQLSTATE[] (null) (severity 0)

我的 Mssql() 的一部分

 private function __construct() {
try{
$this->_pdo = new PDO('dblib:host=' . Config::get('prod/host') . ':'. Config::get('prod/port') .';dbname=' . Config::get('prod/db'),Config::get('prod/username'), Config::get('prod/password'));
}catch(PDOException $e){
die($e->getMessage());
}
}

public static function getInstance(){
// Already an instance of this? Return, if not, create.
if (!isset(self::$instance)) {
self::$instance = new Mssql();
}
return self::$instance;
} //...This function is working and directs to __construct()

我是怎么调用它的

/*Some random php file*/
function getClients(){
$conn = Mssql::getInstance();
//.....

还有我的 init.php

//...
prod' => array(
'host' => 'xxxxxxx',
'port' => '1433',
'username' => 'xxxxxxx',
'password' => 'xxxxxx',
'db' => 'xxxxxxx'
),
//.....

最佳答案

我们从使用 dblib 更改为使用 odbc,并且我的类中的代码更改为:

 private function __construct() {
putenv('ODBCSYSINI=/etc');
putenv('ODBCINI=/etc/odbc.ini');
$username = "xxxx";
$password = "xxxx";
try {
$this->_pdo = new PDO("odbc:production","$username","$password");
} catch (PDOException $exception) {
die($exception->getMessage());
}

关于PHP DBlib PDO 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35290310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com