Rumah pembangunan bahagian belakang PHP7 php7如何使用PDO连接数据库

php7如何使用PDO连接数据库

Jul 01, 2021 am 09:27 AM
php7

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

php7如何使用PDO连接数据库

一、首先是windows安装扩展

7.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.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll
Salin selepas log masuk

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

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

二、Centos安装扩展

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

1、加入微软的源

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

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

yum remove unixODBC
Salin selepas log masuk

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

yum install msodbcsql mssql-tools unixODBC-devel
Salin selepas log masuk

4、下载pdo_sqlsrv扩展包

http://pecl.php.net/package/pdo_sqlsrv
Salin selepas log masuk

5、以4.3.8为例

tar -zxvf pdo_sqlsrv-4.3.8.tgz
Salin selepas log masuk

6、进入解压目录

cd pdo_sqlsrv-4.0.8
Salin selepas log masuk

7、执行PHP的一个扩展命令

/usr/local/php/bin/phpize
Salin selepas log masuk

8、编译

./configure --with-php-config=/usr/local/php/bin/php-config
Salin selepas log masuk

9、安装

make && make install
Salin selepas log masuk

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

extension = "pdo_sqlsrv.so"
Salin selepas log masuk

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

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

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

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

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

https://github.com/Microsoft/msphpsql/edit/master/sample/pdo_sqlsrv_sample.php
Salin selepas log masuk
<?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;
	 ?> 
	 
	 <h1> First 10 results are : </h1>
	 
	 <?php
	 while($row = $getProducts->fetch(PDO::FETCH_ASSOC))
	 {
		 if($ctr>9)
			 break; 
		 $ctr++;
		 echo($row[&#39;CompanyName&#39;]);
		 echo("<br/>");
		 $productCount++;
	 }
	 $getProducts = NULL;
	 
	 $tsql = "INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.* VALUES (&#39;SQL New 1&#39;, &#39;SQL New 2&#39;, 0, 0, getdate())";
	 
	 //Insert query
	 $insertReview = $conn->query( $tsql );
	 FormatErrors ($conn->errorInfo());
	 ?> 
	 
	 <h1> Product Key inserted is :</h1> 
	 
	 <?php
	 while($row = $insertReview->fetch(PDO::FETCH_ASSOC))
	 {
		 echo($row[&#39;ProductID&#39;]."<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 )
	 {
	    /* Display error. */
	    echo "Error information: <br/>";
	 
	    echo "SQLSTATE: ".$error[0]."<br/>";
	    echo "Code: ".$error[1]."<br/>";
	    echo "Message: ".$error[2]."<br/>";
	 }
?>
Salin selepas log masuk

推荐学习:php视频教程

Atas ialah kandungan terperinci php7如何使用PDO连接数据库. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memasang sambungan mongo dalam php7.0 Bagaimana untuk memasang sambungan mongo dalam php7.0 Nov 21, 2022 am 10:25 AM

Cara memasang sambungan mongo dalam php7.0: 1. Buat kumpulan pengguna dan pengguna mongodb 2. Muat turun pakej kod sumber mongodb dan letakkan pakej kod sumber dalam direktori "/usr/local/src/" 3. Masukkan direktori "src/" 4. Buka zip pakej kod sumber 5. Buat direktori fail mongodb 6. Salin fail ke direktori "mongodb/" 7. Buat fail konfigurasi mongodb;

Bagaimana untuk menyelesaikan masalah apabila php7 mengesan bahawa port tcp tidak berfungsi Bagaimana untuk menyelesaikan masalah apabila php7 mengesan bahawa port tcp tidak berfungsi Mar 22, 2023 am 09:30 AM

Dalam php5, kita boleh menggunakan fungsi fsockopen() untuk mengesan port TCP. Fungsi ini boleh digunakan untuk membuka sambungan rangkaian dan melakukan beberapa komunikasi rangkaian. Tetapi dalam php7, fungsi fsockopen() mungkin menghadapi beberapa masalah, seperti tidak dapat membuka port, tidak dapat menyambung ke pelayan, dsb. Untuk menyelesaikan masalah ini, kita boleh menggunakan fungsi socket_create() dan fungsi socket_connect() untuk mengesan port TCP.

Apakah yang perlu saya lakukan jika pemalam dipasang dalam php7.0 tetapi ia masih menunjukkan bahawa ia tidak dipasang? Apakah yang perlu saya lakukan jika pemalam dipasang dalam php7.0 tetapi ia masih menunjukkan bahawa ia tidak dipasang? Apr 02, 2024 pm 07:39 PM

Untuk menyelesaikan pemalam yang tidak menunjukkan isu yang dipasang dalam PHP 7.0: Semak konfigurasi pemalam dan dayakan pemalam. Mulakan semula PHP untuk menggunakan perubahan konfigurasi. Semak kebenaran fail pemalam untuk memastikan ia betul. Pasang kebergantungan yang hilang untuk memastikan pemalam berfungsi dengan betul. Jika semua langkah lain gagal, bina semula PHP. Punca lain yang mungkin termasuk versi pemalam yang tidak serasi, memuatkan versi yang salah atau isu konfigurasi PHP.

Apr 09, 2024 pm 01:33 PM

Penyelesaian biasa untuk persekitaran pelayan PHP termasuk memastikan versi PHP yang betul dipasang dan fail yang berkaitan telah disalin ke direktori modul. Lumpuhkan SELinux buat sementara waktu atau selama-lamanya. Semak dan konfigurasikan PHP.ini untuk memastikan sambungan yang diperlukan telah ditambah dan disediakan dengan betul. Mulakan atau mulakan semula perkhidmatan PHP-FPM. Semak tetapan DNS untuk isu penyelesaian.

Cara memasang dan menggunakan php7.0 Cara memasang dan menggunakan php7.0 Nov 30, 2022 am 09:56 AM

Cara memasang dan menggunakan php7.0: 1. Pergi ke laman web rasmi PHP untuk memuat turun versi pemasangan yang sepadan dengan sistem tempatan 2. Ekstrak fail zip yang dimuat turun ke direktori yang ditentukan 3. Buka tetingkap baris arahan dan pergi ke direktori "E:\php7" Hanya jalankan arahan "php -v".

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Apr 01, 2025 pm 03:06 PM

Punca dan penyelesaian untuk kesilapan Apabila menggunakan PECL untuk memasang sambungan dalam persekitaran Docker Apabila menggunakan persekitaran Docker, kami sering menemui beberapa sakit kepala ...

Mana satu lebih baik, php8 atau php7? Mana satu lebih baik, php8 atau php7? Nov 16, 2023 pm 03:09 PM

Berbanding dengan PHP7, PHP8 mempunyai beberapa kelebihan dan penambahbaikan dari segi prestasi, ciri baharu dan penambahbaikan sintaks, sistem jenis, pengendalian ralat dan sambungan. Walau bagaimanapun, memilih versi yang hendak digunakan bergantung pada keperluan khusus anda dan keadaan projek. Pengenalan terperinci: 1. Peningkatan prestasi, PHP8 memperkenalkan pengkompil Just-in-Time (JIT), yang boleh meningkatkan kelajuan pelaksanaan kod 2. Ciri baharu dan penambahbaikan sintaks, PHP8 menyokong pengisytiharan parameter yang dinamakan dan parameter pilihan, membuat fungsi Panggilan adalah lebih fleksibel kelas tanpa nama, jenis pengisytiharan sifat, dsb.

See all articles