php执行sql *** ,phpsql注入什么意思
踩了无数的坑php执行sql *** ,终于搞定了WAMP下ThinkPHP6.0(PHP7.2)连接SQLServer数据库的 *** 。
太难了!ThinkPHP还有很长的路要走,连接个SQL Server数据库费这个劲,捣鼓半天搞不定,还玩个毛线~
记录下,以后解救自己,解救别人。
具体步骤:1,下载 SQL Server 的 PHP 扩展(Microsoft Drivers for PHP for SQL Server),下载 SQLSRV40.EXE。
下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=20098
下载 SQLSRV40.EXE
解压缩后的文件
解压后选择自己 PHP 版本的扩展,php执行sql *** 我是64位的,注意区分 nts 和 ts 版本。
Thread Safety是enabled,基本就是ts版本。
PS:貌似LNMP环境下Thread Safety是disabled,是nts版本。
复制扩展到 PHP 的 EXT 目录下面,php执行sql *** 我的在wamp目录下bin目录里的php各版本文件夹里。
为了保险起见,我还下载复制了SQLSRV56里的扩展文件,SQLSRV56自己搜索下载吧,这里面支持PHP更多版本。
这一大堆,挑选自己版本的扩展文件,都弄到PHP的EXT目录里。
除此之外,我还从https://pecl.php.net/package/pdo_sqlsrv/5.9.0/windows下载了对应PHP版本的扩展文件,一次管够!
2,接下来修改php.ini文件,增加extension内容。
extension=php_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll
extension=php_sqlsrv_71_ts_x64.dll
extension=php_pdo_sqlsrv_71_ts_x64.dll
extension=php_sqlsrv_72_ts_x64.dll
extension=php_pdo_sqlsrv_72_ts_x64.dll
extension=php_sqlsrv_73_ts_x64.dll
extension=php_pdo_sqlsrv_73_ts_x64.dll
extension=php_pdo_sqlsrv.dll
依然是为了保险起见,我增加了所有版本的extension配置,第二次管够!
3,安装ODBC扩展,不安装这个扩展,会提示could not found driver。
Microsoft® ODBC Driver 11 for SQL Server - Windows(支持SQL Server2005)
下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=36434
Microsoft® ODBC Driver 13 for SQL Server - Windows + Linux(支持SQL Server2016)
下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=50420
4,重要说明:上面ODBC扩展不支持PHP7.2以上版本,就问你坑不坑!php执行sql *** ?
支持PHP7.2以上版本的ODBC自己从github下载。
下载地址:https://github.com/Microsoft/msphpsql/releases。
另外,还需要安装vc++2012运行库,自己搜索下载。
搞完上面,打印下phpinfo()就能看到支持sqlsrv了。
友情提示:
1,看好自己是ts,还是nts。
2,PHP版本是64位,还是32位。
太难了!这么复杂,不得让java们笑死~
忘了说,搞定扩展后,在config/database.php的connnections数组中新增如下配置:
'sqlsrv' => [
// 数据库类型
'type' => 'sqlsrv',
// 服务器地址
'hostname' => 'x.x.x.x',
// 数据库名
'database' => 'xxxx',
// 数据库用户名
'username' => 'sa',
// 数据库密码
'password' => 'xxxx',
// 数据库连接端口
'hostport' => '1433',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => '',
],
这个是TP6的配置,其他版本看着搞吧。