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

不久前,我build议改变我的代码使用PDO为了参数化我的查询并安全地将HTML保存在数据库中。

那么,这里是主要的问题:

  1. 我看了http://php.net/manual/en/ref.pdo-mysql.php ,我真的不知道应该把$ ./configure --with-pdo-mysqlstring放在哪里。

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

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

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

PDO和mysql_同时使用没有限制。 然而,你将需要创build两个连接到您的数据库,一个与mysql_和一个使用PDO。

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

安装PDO

./config --with-pdo-mysql 只有在编译自己的PHP代码时才需要使用。 如果你使用包pipe理器安装它,你只需要使用Jany Hartikainen给出的命令行: sudo apt-get install php5-mysqlsudo apt-get install pdo-mysql

兼容mysql_

除了事实上mysql_真的不受欢迎,它们都是独立的。 如果你使用PDO,mysql_不会被牵连,如果你使用mysql_ PDO是不需要的。

如果closuresPDO而不更改代码中的任何行,则不会有问题。 但是,既然你开始连接和写入PDO查询,你必须保持它,放弃mysql_。

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

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

 extension=pdo.so extension=pdo_mysql.so 

重启networking服务器(比如用“sudo service apache2 restart”) – >每一个罚款:-)

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

  1. PDO代表PHP数据对象。
  2. PDO_MYSQL是将实现数据对象(数据库)和用户input(用户界面下称为“后面的代码”)之间的接口访问您的数据对象,MySQL数据库之间的接口的驱动程序。

使用它的目的是在用户界面和数据库之间实现一个额外的安全层。 通过使用这一层,数据可以在插入到数据结构之前进行标准化。 (首都是首都,没有领先或尾随的空间,所有的date都是正确的。)

但是有一些你可能不知道的细微差别。

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

您还可以通过使用数据层将您的站点强化为SQL注入 。 通过使用这个与数据库本身交stream的“玩家”这个中间层,我相信你可以看到这可能会更安全。 数据层到数据库的接口,数据层到数据库到数据层的接口。

和:

通过在编写代码时实施最佳实践,您将会对结果感到高兴。

其他来源:

回复:MySQL函数中的url php dot net / manual / zh / ref dot pdo-mysql dot php

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

回复:使用UML进行面向对象的devise如果你真的想更多地了解这个,这是市面上最好的书,Grady Booch是UML之父http://dl.acm.org/citation.cfm?id=291167&CFID = 241218549&CFTOKEN = 82813028

或用bitmonkey检查。 我确信你可以学到很多东西。

>

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

>

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

  • GitHub: https : //github.com/marcellodesales/php-apache-mysql-4-cakephp-docker
  • DockerHub: https ://hub.docker.com/r/marcellodesales/php-apache-cakephp-mysql/

以下是我在基于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 

构build和运行你的应用程序只需要两个步骤(考虑到你在应用程序的当前目录中):

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