php+mssql 和 php+mysql 优点缺点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php+mssql 和 php+mysql 优点缺点相关的知识,希望对你有一定的参考价值。

我以前经常用mssql数据库,因为同在学php了,感觉mysql操作不方便,不像mssql操作那么简单,所以还用mssql+php组合。因为现在php+mysql是最佳组合,php+mysql和mssql+php优缺点是什么?我只知道php+mysql可以在linux下运行,mssql+php只有在winndows运行。

  一、PHP+MySql

  优点:

  1) MySql是一个快速、多线程、多用户的SQL数据库服务器。

  2) MySql的核心程序采用完全的多线程编程。

  3)MySql可运行在不同的操作系统下。

  4) MySql有一个非常灵活而且安全的权限和口令系统。

  5) MySql支持ODBC for Windows。

  6)MySql支持大型的数据库。

  7) MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。

  8) 强大的查询功能。

  9)PHP为MySql提供了强力支持,PHP中提供了一整套的MySql函数,对MySql进行了全方位的支持。

  缺点:

  比较的难学;

  MySQL不完全支持陌生的关键词;

  MySQL也缺乏一些存储程序的功能;

  使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入;

  使用myisam配置,如果你不慎损坏数据库,结果可能会导致所有的数据丢失;

  二、PHP+MsSql

  优点:

  上手容易; 兼容性良好; 利于构筑"敏捷性商务";

  缺点:

  只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。

  并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限;

  安全性方面,没有获得任何安全证书;

  客户端支持及应用模式 ,是C/S结构,只支持windows客户,可以用ADO, DAO,OLEDB,

  ODBC连接;

  不是免费的;

  数据不容易恢复;
参考技术A 对经销商来说,MySql是免费的,而MsSql是收费的,所以一般提供MySql的多。
MySql是英文的,MsSql有中文版,所以MsSql用起来方便。
MySql一般是在线上调试,MsSql可以离线调试。本回答被提问者和网友采纳
参考技术B 傻子才用mssql配php

IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用

【中文标题】IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用【英文标题】:Connection between MSSQL and PHP 5.3.5 on IIS is not working 【发布时间】:2011-03-24 20:47:35 【问题描述】:

我最近安装了 IIS、PHP 5.3.5 和 MySQL,并且一切正常。

然后我也需要 MS SQL,而我认为这将是一件容易的事,现在让我发疯了,我不知道如何使它工作。

根据php_info(),MS SQL 驱动程序没有加载。

我下载了php_mssql.dll 并在php.ini 中启用了它,但它不起作用。我发现新版本的 PHP 使用了不同的 dll。所以我下载了新的,把它放在 ext 文件夹中,并更新了php.ini,但还是不行。

php_info() 仍然没有显示驱动程序已加载。

我即将卸载IIS和PHP,并安装我之前安装的Apache。

这个问题是我最后一次尝试,有人可以帮忙吗?

【问题讨论】:

仅仅抓取 DLL 文件是不够的——你是否还要修改 php.ini 来加载它们? 是的,我修改了 php.ini 文件并重新启动了 IIS。我尝试了 php_mssql.php 和 php_sqlsrv_53_nts_vc9.dll。 您是否修改了正确的php.ini 文件?它应该在phpinfo 页面中列出正确的文件名。 我假设您使用的是 FastCGI,对吧? IIS 在重新启动期间是否会关闭外部 FastCGI 位?我在这里抓住了稻草...... Ops...我正在使用 FastCGI,我尝试重新启动 IIS 并停止并重新启动,以及重新启动计算机。 【参考方案1】:

这是我不久前写的客户常见问题解答中的一个 sn-p,以帮助我们的专用托管客户启动 PHP 并使用 MS SQL 驱动程序运行。它可能会复制上面 cmets 中已经传授的一些知识,但它的完整性也可以帮助其他人从头开始:

注意:很明显,自从我写这篇文章以来,PHP 版本号已经发生了一些变化,但一般原则仍然适用。


安装先决条件: Microsoft Drivers for PHP for SQL Server 需要 SQL Native Client:

Microsoft SQL Server 2008 R2 Native Client X64 - for 64 bit Windows 或Microsoft SQL Server 2008 R2 Native Client X32 - for 32 bit Windows

下载并安装与您的系统匹配的 Native Client 驱动程序。

PHP MS SQL 驱动程序:

下载 Microsoft Drivers for PHP for SQL Server:

Microsoft Drivers for PHP for SQL Server

该文件是一个自解压的可执行文件,因此只需使用 7zip 或 WinRAR 并将文件解压到您选择的文件夹中。我们现在需要决定选择哪个驱动程序来匹配您的 PHP 安装。

PHP 5.3.5 有四种不同的风格:

PHP 5.3.5 非线程安全 VC9 PHP 5.3.5 非线程安全 VC6 PHP 5.3.5 线程安全 VC9 PHP 5.3.5 线程安全 VC6

要知道您安装了哪个版本,请打开与php.exephp-cgi.exe 等位于同一文件夹中的snapshot.txt 文件。不要使用notepad.exe,因为该文件仅使用换行符(\n ) 用于开头的行结束(unix 格式),记事本将这些修改为一行。

在文件中,您将看到一行(在第 6 行附近,或在您使用记事本的第 1 行中间附近)开头:Build::

构建:D:\php-sdk\snap_5_3\vc9\x86\obj\Release - 非线程安全,VC9 构建 构建:D:\php-sdk\snap_5_3\vc6\x86\obj\Release - 非线程安全,VC6 构建 构建:D:\php-sdk\snap_5_3\vc9\x86\obj\Release_TS - 线程安全,VC9 构建 构建:D:\php-sdk\snap_5_3\vc6\x86\obj\Release_TS - 线程安全,VC6 构建

这告诉我们您正在运行的 PHP 版本。

从您提取 MS SQL PHP 驱动程序的文件夹中,选择与正在使用的 PHP 版本匹配的驱动程序(如果您不使用 PDO,则无需复制 php_pdo_ 驱动程序) :

PHP 5.3.5 非线程安全 VC9:php_sqlsrv_53_nts_vc9.dll、php_pdo_sqlsrv_53_nts_vc9.dll PHP 5.3.5 非线程安全 VC6:php_sqlsrv_53_nts_vc6.dll、php_pdo_sqlsrv_53_nts_vc6.dll PHP 5.3.5 线程安全 VC9:php_sqlsrv_53_ts_vc9.dll、php_pdo_sqlsrv_53_ts_vc9.dll PHP 5.3.5 线程安全 VC6:php_sqlsrv_53_ts_vc6.dll、php_pdo_sqlsrv_53_ts_vc6.dll

假设您的 PHP 安装在 C:\PHP 中,请将这些文件复制(不要移动)到您的 C:\PHP\EXT 文件夹中。

打开C:\PHP\PHP.INI并找到文件的Dynamic Extensions部分并添加:

扩展=php_sqlsrv_53_nts_vc9.dll extension=php_pdo_sqlsrv_53_nts_vc9.dll

最后,为了确保 PHP 可以找到这些扩展,请确保 C:\PHP\PHP.INI 中的 extension_dir 指令设置为 C:\PHP\EXT

extension_dir = C:\PHP\ext

重启 IIS 并调用phpinfo()。如果一切顺利,您应该会看到:

如果您还加载了 PDO 驱动程序,您应该会看到:

【讨论】:

太棒了,谢谢。这是否意味着 mssql_ 函数不再可用?? @Naner - 谢谢:)。是的,您需要改用 sqlsrv_ 函数,它几乎映射到 mssql_ 函数,但有一些区别:msdn.microsoft.com/en-us/library/cc296152.aspx 我应该如何在 linux 上设置这个 sqlsrv 驱动程序?请在下面的链接中找到我的答案,请给我必要的建议。***.com/questions/11839368/… @KusH - 上述驱动程序仅适用于 Windows。老实说,我从来没有在 Unix 上从 PHP 访问 MS SQL 的用例。你可以看看:***.com/questions/3684782/… 看看是否有帮助。 @hotohoto 没试过,但我猜是这样。问题往往在于 PHP 驱动程序落后于 PHP 版本。【参考方案2】:

以上提到的:

extension=php_sqlsrv_53_nts_vc9.dll extension=php_pdo_sqlsrv_53_nts_vc9.dll

我发现的不正确。

因此,很可能是:

extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll

【讨论】:

以上是关于php+mssql 和 php+mysql 优点缺点的主要内容,如果未能解决你的问题,请参考以下文章

PHP连接mssql问题

linux编译安装mssql客户端和配置php连接mssql

php+mssql 访问速度慢是啥原因?

Mssql 2012 与 PHP & Mysql 到 Mssql 迁移

PHP MySql MsSql 如何插入或更新 ['] 或 ["] 或 [`] 字符?

PHP把MSSQL数据导入到MYSQL的方法