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

时间:2012-11-14 08:11:22

标签: php mysql pdo phpmyadmin install

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

嗯,这是主要问题:

  1. 我看了http://php.net/manual/en/ref.pdo-mysql.php,我真的没有把$ ./configure --with-pdo-mysql字符串放在哪里......

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

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

6 个答案:

答案 0 :(得分:177)

在Ubuntu上,您应该可以使用sudo apt-get install php5-mysql

从apt安装必要的PDO部件

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

答案 1 :(得分:24)

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

安装PDO

如果您编译自己的PHP代码,那么./config --with-pdo-mysql就必须放在。如果使用包管理器安装它,则只需使用Jany Hartikainen提供的命令行:sudo apt-get install php5-mysql以及sudo apt-get install pdo-mysql

与mysql _

的兼容性

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

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

几年前,MySQL团队向migrate to MySQLi发布了一个脚本。我不知道它是否可以定制,但它是正式的。

答案 2 :(得分:15)

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

extension=pdo.so
extension=pdo_mysql.so

重新启动网络服务器(例如,使用" sudo service apache2 restart") - >罚款: - )

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

答案 3 :(得分:7)

  1. PDO代表PHP数据对象。
  2. PDO_MYSQL是一个驱动程序,它将实现dataobject(数据库)和用户输入(称为“代码隐藏”的用户界面下的一个层)之间的接口,以访问您的数据对象MySQL数据库。
  3. 使用它的目的是在用户界面和数据库之间实现额外的安全层。通过使用此层,可以在将数据插入数据结构之前对数据进行规范化。 (首都是首都,没有前导或尾随空格,所有日期都正确形成。)

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

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

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

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

    其他来源:

    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检查。那里有一个小组,我相信你可以学到很多东西。

    >

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

    >

答案 4 :(得分:6)

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

extension=pdo.so
extension=pdo_mysql.so
在您的.ini文件中

并通过命令重新启动服务器

sudo service apache2 restart

答案 5 :(得分:0)

如果你需要一个带有MySQL的CakePHP Docker容器,我已经为此创建了一个Docker镜像!无需担心设置它。它只是有效!

以下是我在基于Ubuntu的映像中的安装方式:

https://github.com/marcellodesales/php-apache-mysql-4-cakephp-docker/blob/master/Dockerfile#L8

RUN docker-php-ext-install mysql mysqli pdo pdo_mysql

构建和运行应用程序只需两个步骤(考虑到您位于应用程序的当前目录中):

$ docker build -t myCakePhpApp .
$ docker run -ti myCakePhpApp