GVKun编程网logo

PHP 安装 mssql pdo(pdo_sqlsrv)扩展(php安装mysql)

4

最近很多小伙伴都在问PHP安装mssqlpdo和pdo_sqlsrv扩展这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展1、PDO:PDO简介、5.3版本php与5.5公用的pdo

最近很多小伙伴都在问PHP 安装 mssql pdopdo_sqlsrv扩展这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展1、PDO:PDO 简介、5.3 版本 php 与 5.5 公用的 pdo 技巧、Centos7.5 php7.2 安装 pdo_sqlsrv 连接 sql server(转)、Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php等相关知识,下面开始了哦!

本文目录一览:

PHP 安装 mssql pdo(pdo_sqlsrv)扩展(php安装mysql)

PHP 安装 mssql pdo(pdo_sqlsrv)扩展(php安装mysql)

1.添加微软源

在 https://packages.microsoft.com/config/ 找对应的源,

我这里选择debian:

curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/microsoft.list

W: GPG error: http://security.ubuntu.com trusty-security Release: The following signatures couldn''t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5
这个问题的解决办法:apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5

2.安装驱动

# apt-get update

# apt-get install msodbcsql mssql-tools unixodbc-dev

3.安装扩展

下载 http://pecl.php.net/package/pdo_sqlsrv

# tar -zxvf pdo_sqlsrv-5.2.0.tgz

# cd pdo_sqlsrv-5.2.0

# phpize

# ./configure

# make && make install

然后 php.ini > extension=pdo_sqlsrv.so;


  • 出现错误:undefined symbol: php_pdo_register_driver 是因为php.ini中 pdo_sqlsrv.so 和 pdo.so的加载顺序反了,pdo_sqlsrv.so应该在pdo.so之后

  • 出现错误:undefined symbol: mysqlnd_allocator (这个是捎带说一下),和上面类似是mysqlnd 模块 和 pdo_mysql 的顺序问题,应该先加载 mysqlnd

1、PDO:PDO 简介

1、PDO:PDO 简介

5.3 版本 php 与 5.5 公用的 pdo 技巧

5.3 版本 php 与 5.5 公用的 pdo 技巧

$data_conn = array();
$data_conn[''host''] = ''host'';
$data_conn[''user''] = ''user'';
$data_conn[''passwd''] = ''pass'';
// 连接数据库
function conn_mysql($conn_array){
    $dsn = ''mysql:host='' . $conn_array[''host''] . '';dbname='';
    $option = array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    );
    if (version_compare(PHP_VERSION, ''5.3.6'', ''<'')) {
        if (defined(''PDO::MYSQL_ATTR_INIT_COMMAND'')) {
            $option[PDO::MYSQL_ATTR_INIT_COMMAND] = ''SET NAMES utf8'';
        }
    } else {
        $dsn .= '';charset=utf8'';
    }
    $conn = [@new](https://my.oschina.net/u/121421) PDO($dsn, $conn_array[''user''], $conn_array[''passwd''], $option);
    if (version_compare(PHP_VERSION, ''5.3.6'', ''<'') && !defined(''PDO::MYSQL_ATTR_INIT_COMMAND'')) {
        $sql = ''SET NAMES utf8'';
        $conn->exec($dw_sql);
    }
    return $conn;
}

$data_db = conn_mysql($data_conn);

Centos7.5 php7.2 安装 pdo_sqlsrv 连接 sql server(转)

Centos7.5 php7.2 安装 pdo_sqlsrv 连接 sql server(转)

Centos7.5 php7.2 安装 pdo_sqlsrv 连接 sql server

转:https://blog.csdn.net/gdali/article/details/82912542
 

一、加入微软的源

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo

二、防止冲突先卸载原有版本 (可选)

yum remove unixODBC

三、安装驱动(三个都要装上,缺一不可)

yum install msodbcsql mssql-tools unixODBC-devel

四、下载 pdo_sqlsrv 扩展包

wget http://pecl.php.net/get/pdo_sqlsrv-5.3.0.tgz

五、解压

tar -zxvf pdo_sqlsrv-5.3.0.tgz

六、进入解压目录

cd pdo_sqlsrv-5.3.0

七、执行命令

  1.  
    /usr/ local/php/bin/phpize
  2.  
     
  3.  
    ./configure -- with-php-config=/usr/local/php/bin/php-config

八、编译安装

make && make install


解决编译错误问题:
sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash
 

九、更新 php.ini

修改 /usr/local/php/etc/php.ini 查找:extension = 再最后一个 extension= 后面添加上 extension = "pdo_sqlsrv.so"

十、重启 lnmp 

lnmp restart

 

POD 连接示例:

  1.  
    define( ''MSSQL_HOST'',''111.15.25.222,6666'');
  2.  
    define( ''MSSQL_USER'',''sa'');
  3.  
    define( ''MSSQL_PASSWORD'',''password'');
  4.  
    define( ''MSSQL_DBNAME'',''demo''); 

注意:端口号跟地址之间是逗号。

  1.  
    $ this->dbms = ''sqlsrv'';
  2.  
    $ this->host = MSSQL_HOST;
  3.  
    $ this->user = MSSQL_USER;
  4.  
    $ this->password = MSSQL_PASSWORD;
  5.  
    $ this->dbname = MSSQL_DBNAME;
  6.  
    $ this->dsn = "$this->dbms:Server=$this->host;Database=$this->dbname";
  7.  
    $ this->DB = new PDO($this->dsn, $this->user, $this->password);

注意:dsn 部分,跟 mysql 和 dblib 是不一样的。

 

大功告成。

Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php

Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php

如何解决Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php

我正在尝试在 pdo pgsql(第二个数据库)中插入数据,但我很清楚这个注意:试图获取非对象的属性。文件名:pdo/pdo_driver.PHP。

这是我与数据库的连接:

with open(file_path) as csv_file:
    data_source = csv.reader(csv_file,delimiter='','')
    with open(output_path + ''results.csv'',''w'',newline='''') as results_file:
        data_sink = csv.writer(results_file) #This is the important line
        for line in data_source:
            data_sink.writerow(line)

在我的模型中,我有这个功能(这里只是重要的东西,不完整):

$active_group = ''default'';
$query_builder = TRUE;

$db[''pdo_email''] = array(
    ''hostname'' => ''pgsql:host=00.00.00.00;dbname=db_name;port=5432'',''username'' => ''user'',''password'' => ''password'',''database'' => ''db_name'',''dbdriver'' => ''pdo'',''dbprefix'' => '''',''pconnect'' => FALSE,''db_debug'' => (ENVIRONMENT !== ''production''),''cache_on'' => FALSE,''cachedir'' => '''',''char_set'' => ''utf8'',''dbcollat'' => ''utf8_general_ci'',''swap_pre'' => '''',''encrypt'' => FALSE,''compress'' => FALSE,''stricton'' => FALSE,''failover'' => array(),''save_queries'' => TRUE
);

解决方法

我使用 POSTGRES 的数据库连接设置:

$active_group = ''default'';
$query_builder = TRUE;

    $db[''default''] = array(
        ''dsn''   => '''',''hostname'' => ''pgsql:host=localhost;dbname=Absences_DB'',''username'' => ''postgres'',''password'' => ''marc'',''database'' => ''Absences_DB'',''dbdriver'' => ''pdo'',''dbprefix'' => '''',''pconnect'' => FALSE,''db_debug'' => (ENVIRONMENT !== ''production''),''cache_on'' => FALSE,''cachedir'' => '''',''char_set'' => ''utf8'',''dbcollat'' => ''utf8_general_ci'',''swap_pre'' => '''',''encrypt'' => FALSE,''compress'' => FALSE,''stricton'' => FALSE,''failover'' => array(),''save_queries'' => TRUE
     );

您应该验证是否在 php.ini 文件中启用了 pdo 驱动程序

关于PHP 安装 mssql pdopdo_sqlsrv扩展的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于1、PDO:PDO 简介、5.3 版本 php 与 5.5 公用的 pdo 技巧、Centos7.5 php7.2 安装 pdo_sqlsrv 连接 sql server(转)、Codeigniter PDO 错误连接注意:尝试获取非对象的属性文件名 pdo/pdo_driver.php等相关知识的信息别忘了在本站进行查找喔。

本文标签: