在MySQL Linux服务器上安装PDO驱动程序
不久前,我build议改变我的代码使用PDO为了参数化我的查询并安全地将HTML保存在数据库中。
那么,这里是主要的问题:
-
我看了http://php.net/manual/en/ref.pdo-mysql.php ,我真的不知道应该把
$ ./configure --with-pdo-mysql
string放在哪里。 -
我正在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-mysql
和sudo 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/
- PDO代表PHP数据对象。
- 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