1. PHP连接MySQL

1.1 乱码问题

1.1.1原因:MySQL默认的编码方式为latin1,不支持中文。

1.1.1解决:MySQL中支持中文的数据库引擎InnoDBcharset=utf8

2. PHP连接SQLServer数据库

2.1 连接失败

2.1.1 服务器设置不正确

MSSQL默认是不允许远程连接,并且禁用sa账户的。如果想要在本地用SSMS连接远程服务器上的MSSQLSERVER,需要做两个部分的配置:

1. SQL SERVER MANAGEMENT STUDIO(SSMS)

2. SQL SERVER配置管理器(SQL SERVER CONFIGURATION MANAGER - SSCM

并且需要注意的是,有些地方如果没有生效,请重启一下sql server(可以从SSCM里,也可以从系统服务中找),下面是详细的步骤:

STEP1. 打开SSMS,使用Windows身份连接数据库,登录后,右键选择属性

STEP 2. 选择安全性,选中SQL SERVERWindows身份验证模式

STEP 3. 再选择连接,勾选允许远程连接此服务器,然后点击确定按钮。

 

STEP 4. 展开安全性” -》登录名 -sa,右键选择属性

STEP 5. 常规中,改好你自己的密码,这是你sa登录的密码。

STEP 6. 状态中,启用sa登录,点击确定按钮

STEP 7. 右键数据库server,选择方面

STEP 8. 选择服务器配置,找到RemoteAccessEnabled,设置为“True”

STEP 9. 重新启动SQL SERVER服务,退出当前的连接,这时候应该可以用sa进行登录了。

STEP 10. 配置SSCM,选中左侧的“SQL SERVER服务,确保右侧的“SQL SERVER”以及“SQL SERVER BROWER”正在运行,选择网络配置,双击TCP/IP,确保状态为启用

STEP 11. Client里也确保TCP/IP是启用的,默认的端口都是1433,可以自己修改,非默认端口需要在连接字符串里显式指明。

STEP 12. 到这里再次重启SQL SERVER服务,应该就可以用了。不过还不能用,确认防火墙端口设置,并把SQL SERVER安装目录下,C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe添加到允许的列表中。

 

2.1.2 PHP连接SQLServer数据库

2.1.2.1 开启连接扩展

不同的PHP版本在扩展文件夹中对应的不同,安装好的环境自带的连接扩展可能不能正常使用,需要根据自己的PHP的版本和机器的位数从网络上下载。

 

注意事项:

1.如果要连接SQL Server2005 或者 SQL Server2008 要使用

 

2.单纯的mssql支持到2000版本

官网上的版本只有32位机器的,如果你的机器是64位请下载非官方版本(地址自行百度) 

3.配置PHP.ini(在这之前要确保pdo是开启的)

 

2.1.2.2代码连接

 

 

3. Apache搭建常见问题

3.1缺失东西

这是因为缺少依赖库VC++2012,直接去微软官方下载或者安装PHPStudy的依赖库:

 

同样的缺少VC++2015的运行库,安装PHPstudy依赖中的库即可。

 

 

缺少api-ms-win-crt-runtime-l1-1-0.dll 丢失

解决:根据当前的系统(目前出现的是winServer2012)修复补丁。

3.2 Apache配置文件

3.2.1出现403权限禁止(一般出现在集成wamp)

 

原因:默认开启了多域名配置的vhost文件,本地目录没有开启访问的权限。

解决:注释掉vhost,Include前面添加”#”注释。并在代码目录(集成的一般为www)的权限中添加,Require all granted

 

目录权限的说明:

Options Indexes   Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 IndexesApache 就不会显示该目录的列表了。(开发阶段使用)

 

 

AllowOverride all 

AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。

 

Order allow,deny

注意Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限

上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。

逗号后面的是最终的判断规则。

 

Order deny,allow
allow from all
deny from 219.204.253.8
#全部都可以通行

 

4.PHP连接Oracle数据库

4.1开启扩展

因为Windows默认没有oci扩展相关的程序集,打开扩展,经过几次安装发现:

PHP5.5 的扩展下面有oci8这个扩展,可以连接Oracle10Oracle11

Php5.6 的扩展下面有oci8_12这个只能用来连接Oracle12的服务器

打开oci8扩展的同时也要把PDO打开

4.1.1注意的问题

注意:

(1) 使用wamp等集成环境的时候,要仔细查看PHP.ini文件的位置,目前新版的php.ini的配置文件是在wamp\bin\apache\bin目录下。

(2) PHP.iniext的目录可能需要制定绝对路径(有些情况,原因不详。)

 

4.2遇到的问题

4.2.1开启扩展的问题

扩展开始失败的原因:PHP位数和Oracle客户端位数不一致导致的。

说明: 一般情况32位的PHP可以安装在32位机器和64位的机器上,但是32位的机器只能安装32位的PHP

 

如果PHP版本是64位,那么安装的Oracle也必须是64位,之前可以使用PHPstudy可以直接打开扩展就是因为类似于PHPStudywamp工具为了兼容32位系统,选择的PHP的版本都是32位。

注意:在PHP5.6版本中,默认是没有php_oci_8.dll,php_oci_11g这两个扩展的,默认的是php_oci_12c.dll,这个是用来连接Oracle客户端12版本的,要去官网下载对应的php_oci_8.dll,php_oci_11g版本。

 

5.5.38开启扩展为例:

首先把缺少的程序集都安装号,所有的PHPStudy库都运行一遍即可修复大部分错误。

 

4.2.2.1 安装Oracle11g的客户端,根据PHP版本来安装。把安装好的bin目录配置到系统的path中去(默认是安装自动配置,如果自动配置则需手动配置)

 

重启电脑。

修改php.ini

 

 

查看phpinfo是不是有了oci扩展了。

 

 

4.2.2 乱码问题

Oracle中默认的字符集是GBK,但是在PHP使用过程中经常使用的是UTF-8的字符集。这就需要进行字符集的统一。

也需要在环境变量中进行字符编码的配置:

Key为红色部分,值要根据Oracle数据库中查询到的结果来配置。

NLS_CHARACTERSET     ZHS16GBK

nls_lang               AMERICAN_AMERICA.ZHS16GBK

 

代码中使用需要注意的问题,json_encode函数返回中文的时候,只能是UTF-8格式的,如果出现不能返回,或者返回为空有可能是编码方式不同。

4.2.3使用Navicat连接问题

默认的Navicat自带的连接数据库的oci.dll64位机器上是不能正常连接的,需要制定oci.dll来连接数据库。

打开Navicat,设置如下:

 

 

 

选择下图的oci.dll,路径在文件夹中可以根据分类名称找到。

 

 

设置好了连接的dll之后,在连接的过程中的问题,

以超级用户sys来说:

 

 

设置模式:为SYSDBA

 

 

普通用户:

 

 

 

4. C#连接MySQL数据库

C#中默认有的连接数据库是SQLServer,要先引入第三方库。(代码,库,见文件夹)

 

添加引用,引入命名空间即可使用。

 

5. C#连接Oracle

C#连接MySQL数据库类似添加引用,连接。

6. C#连接SQLServer

C#SQLServer都是微软的产品,直接填写配置文件就可以连接。

 

7. PHP连接Firebird

开启扩展之前的准备工作:

1. fbclient放到System32(64)下面

2. 安装好了firebird客户端(根据机器位数安装)之后把安装目录的bin目录添加到Path(系统)里面去(重启电脑)

开启之前要安装FireBird数据库,并且保证服务能够正常的运行。

 

8.1开启两个扩展

interbase扩展和firebired,如果只开启一个可能导致查询出来的数据不完整。

 

 

 

8. PHP连接SQLLite

开启扩展:Sqllite3

类似于FireBird,数据库就只是一个本地的文件。

class MyDB extends SQLite3

   {

      function __construct()

      {

         $this->open('test.db');

      }

   }

   $db = new MyDB();

连接成功之后,

执行SQL语句:$db->query($sql);

 不知道什么原因,图片无法上传,可以联系本人,发送word版本的文档。


如果觉得我写的还满意,您可以任意打赏。也可加本人QQ:1446028125 备注请加:csdn博客

                                                    数据库连接大杂烩     

相关文章:

  • 2021-08-17
  • 2021-06-22
  • 2021-05-19
  • 2021-12-19
  • 2021-11-08
  • 2021-12-05
  • 2021-06-23
猜你喜欢
  • 2021-12-21
  • 2021-12-19
  • 2021-06-07
  • 2021-10-19
  • 2021-09-18
  • 2021-10-03
相关资源
相似解决方案