文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php7怎么用PDO连接数据库

2023-06-20 12:35

关注

本篇内容主要讲解“php7怎么用PDO连接数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php7怎么用PDO连接数据库”吧!

在php中,可以使用pdo连接数据库,但不一定每个人都知道同时兼容windows和centos的方法,下面就来介绍一下使用PDO连接,同时兼容windows和centos的方法,有需要的可以看看。

一、首先是windows安装扩展

0.x的扩展下载地址:

Microsoft Drivers for PHP for SQL Server  https://www.microsoft.com/en-us/download/details.aspx?id=20098

ODBC Driver:

Microsoft® ODBC Driver 11 for SQL Server® - Windows (支持Sql Server® 2005)  https://www.microsoft.com/zh-CN/download/details.aspx?id=36434

Microsoft® ODBC Driver 13 for SQL Server® - Windows + Linux (支持最新的SQL Server® 2016)  https://www.microsoft.com/zh-CN/download/details.aspx?id=50420

安装配置:

下载SQL Server的PHP扩展(Microsoft Drivers for PHP for SQL Server),连接里有多个文件,只需要下载 SQLSRV40.EXE 即可。

解压后根据自己PHP的版本选择32位或64位的扩展,注意区分(Thread safe?)nts和ts。

复制扩展需要的文件到PHP扩展目录。(例如我这里使用的是:php_pdo_sqlsrv_7_ts_x64.dll 和  php_sqlsrv_7_ts_x64.dll)

修改php.ini添加以下两行来启用扩展:

extension=php_sqlsrv_7_ts_x64.dllextension=php_pdo_sqlsrv_7_ts_x64.dll

安装ODBC Driver,根据自己的需要选择上面的地址下载并安装。

现在可以使用phpinfo()来查看是否成功加载了 pdo_sqlsrv 模块。

二、Centos安装扩展

前提貌似文档说一定要PHP7以后的版本,以前很多都是第三方FreeTDS,再怎么搞也没有微软官方的稳定吧!

加入微软的源

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扩展包

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

以4.3.8为例

tar -zxvf pdo_sqlsrv-4.3.8.tgz

进入解压目录

cd pdo_sqlsrv-4.0.8

执行PHP的一个扩展命令

/usr/local/php/bin/phpize

编译

./configure --with-php-config=/usr/local/php/bin/php-config

安装

make && make install

修改/usr/local/php/etc/php.ini 添加extension

extension = "pdo_sqlsrv.so"

重启php-fpm和nginx,大功告成

下面我重点说我的踩坑记录:

windows安装完后,2种方式调用,我最开始用的sqlsrv_connect方式,能成功调用,具体的api参考这里。

https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-driver-api-reference

但是上面的安装方法,Centos服务器最终是只安装pdo_sqlsrv.so的。所以只能采用另外一种pdo方式调用,才是通用的。

https://github.com/Microsoft/msphpsql/edit/master/sample/pdo_sqlsrv_sample.php
<?php    echo "\n";    $serverName = "tcp:yourserver.database.windows.net,1433";$database = "yourdatabase";$uid = "yourusername";$pwd = "yourpassword"; //Establishes the connection $conn = new PDO( "sqlsrv:server=$serverName ; Database = $database", $uid, $pwd);  //Select Query $tsql = "SELECT [CompanyName] FROM SalesLT.Customer";  //Executes the query $getProducts = $conn->query( $tsql );  //Error handling FormatErrors ($conn->errorInfo());  $productCount = 0; $ctr = 0; ?>   <h2> First 10 results are : </h2>  <?php while($row = $getProducts->fetch(PDO::FETCH_ASSOC)) { if($ctr>9) break;  $ctr++; echo($row['CompanyName']); echo("<br/>"); $productCount++; } $getProducts = NULL;  $tsql = "INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.* VALUES ('SQL New 1', 'SQL New 2', 0, 0, getdate())";  //Insert query $insertReview = $conn->query( $tsql ); FormatErrors ($conn->errorInfo()); ?>   <h2> Product Key inserted is :</h2>   <?php while($row = $insertReview->fetch(PDO::FETCH_ASSOC)) { echo($row['ProductID']."<br/>"); } $insertReview = NULL;  //Delete Query //We are deleting the same record $tsql = "DELETE FROM [SalesLT].[Product] WHERE Name=?"; $param = "SQL New 1";  $deleteReview = $conn->prepare($tsql); $deleteReview->bindParam(1, $param);  $deleteReview->execute(); FormatErrors ($deleteReview->errorInfo());  function FormatErrors( $error ) {        echo "Error information: <br/>";     echo "SQLSTATE: ".$error[0]."<br/>";    echo "Code: ".$error[1]."<br/>";    echo "Message: ".$error[2]."<br/>"; }?>

到此,相信大家对“php7怎么用PDO连接数据库”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯