在MySQL Linux服务器上安装PDO驱动程序

Yur*_*aci 98 php mysql pdo install phpmyadmin

不久前,我被建议更改我的代码以使用PDO来参数化我的查询并安全地将HTML保存在数据库中.

嗯,这是主要问题:

  1. 我看了http://php.net/manual/en/ref.pdo-mysql.php,我真的不知道应该把那个$ ./configure --with-pdo-mysql字符串放到哪里......

  2. 我正在构建的网站实际上只需要PDO一页.虽然我可能会考虑重写它,但它需要一段时间,我需要很快运行页面,所以我不能完全关闭MySQL.如果我安装PDO,我仍然可以使用mysql_*处理程序吗?

有问题的服务器运行PHP版本5.4.6-1ubuntu1和Apache/2.2.22(Ubuntu).如果重要的话,我也在运行phpMyAdmin数据库.

Jan*_*nen 178

在Ubuntu上,您应该能够从apt使用安装必要的PDO部件 sudo apt-get install php5-mysql

同时使用PDO和mysql_之间没有限制.但是,您需要为数据库创建两个连接,一个使用mysql_,另一个使用PDO.

  • 谢谢ryAn_Hdot!但这对我也没有用.我的解决方案现在:我运行php7,我不得不做`sudo apt-get install php-mysql` (10认同)

art*_*gis 26

这是一个很好的问题,但我认为你只是误解了你所读到的内容.

安装PDO

./config --with-pdo-mysql是你必须把东西只有当你编译自己的PHP代码.如果你使用包管理器安装它,你只需要使用Jany Hartikainen给出的命令行:sudo apt-get install php5-mysql还有sudo apt-get install pdo-mysql

与mysql_的兼容性

除了mysql_真的气馁之外,它们都是独立的.如果使用PDO,则不涉及mysql_,如果使用mysql_ PDO则不需要.

如果在不更改代码中的任何行的情况下关闭PDO,则不会出现问题.但是既然你开始用PDO连接和编写查询,你必须保留它并放弃mysql_.

几年前,MySQL团队发布了一个迁移到MySQLi的脚本.我不知道它是否可以定制,但它是官方的.


Tob*_*ner 15

基本上Jani Hartikainen的答案是对的!我赞成他的回答.我的系统(基于Ubuntu 15.04)缺少的是在我的php.ini中启用PDO扩展

extension=pdo.so
extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)

重启网络服务器(例如用"sudo service apache2 restart") - >每次罚款:-)

要查找当前活动的php.ini文件的位置,可以使用phpinfo()或其他一些提示:https://www.ostraining.com/blog/coding/phpini-file/


Avn*_*lok 8

首先,通过运行以下命令安装必要的PDO部件,sudo apt-get install php*-mysql其中*是php的版本名称,例如5.6、7.0、7.1、7.2,安装后,您需要提及(如果已经存在,请取消注释)这两个语句

extension=pdo.so
extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)

在您的.ini文件中,然后通过命令重新启动服务器

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 这个答案非常有帮助,因为它指出您需要`php*-mysql`中的 PHP 版本号。我正在尝试 `php-mysql` 和 `php7-mysql` 无济于事,然后这个答案敲定了交易!谢谢! (3认同)

小智 7

  1. PDO代表PHP数据对象.
  2. PDO_MYSQL是一个驱动程序,它将实现dataobject(数据库)和用户输入(称为"代码隐藏"的用户界面下的一个层)访问数据对象MySQL数据库之间的接口.

使用它的目的是在用户界面和数据库之间实现额外的安全层.通过使用此层,可以在将数据插入数据结构之前对数据进行规范化.(首都是首都,没有领先或尾随空格,所有日期都正确形成.)

但是你可能没有注意到这方面的一些细微差别.

首先,到目前为止,您可能已经将所有查询都写入类似于URL的内容,并使用URL本身传递参数.使用PDO,所有这些都是在用户界面级别完成的.用户界面将球传递给PDO,PDO将其带到现场并将其植入数据库中以获得7分TOUCHDOWN ..他得到7分,因为他得到了7分,并且比通过URL传递信息更加安全.

您还可以使用数据层将站点强化为SQL注入.通过使用这个中间层,它是与数据库本身对话的唯一"玩家",我相信你可以看到它如何更加安全.数据层接口到数据库,数据层到数据库到数据层到接口.

和:

通过在编写代码时实施最佳实践,您将对结果更加满意.

其他来源:

Re:MySQL函数在url php dot net/manual/en/ref dot pdo-mysql dot php

Re:三层架构 - 为您的应用程序添加安全性 https://blog.42.nl/articles/introducing-a-security-layer-in-your-application-architecture/

Re:使用UML进行面向对象的设计如果你真的想要了解更多这方面,这是市场上最好的书,Grady Booch是UML的父亲 http://dl.acm.org/citation.cfm?id=291167&CFID = 241218549&CFTOKEN = 82813028

或者用bitmonkey检查.那里有一个小组,我相信你可以学到很多东西.

>

如果我们知道术语的真正含义,我们就不需要学习任何东西.

>