Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL Linux服务器上安装PDO驱动程序_Php_Mysql_Pdo_Phpmyadmin_Installation - Fatal编程技术网

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

Php 在MySQL Linux服务器上安装PDO驱动程序,php,mysql,pdo,phpmyadmin,installation,Php,Mysql,Pdo,Phpmyadmin,Installation,不久前,有人建议我将代码改为使用PDO,以便参数化查询并在数据库中安全地保存HTML 那么主要的问题是: 我看了一下,我真的不知道应该把它放在哪里,$./configure——使用pdo mysqlstring 我正在构建的站点实际上只需要一个页面的PDO。虽然我可以考虑重新编写它,但这需要一段时间,我需要页面运行得很快,所以我不能完全关闭MySQL。如果我安装了PDO,我还能够使用mysql.*处理程序吗 该服务器正在运行PHP版本5.4.6-1ubuntu1和Apache/2.2.22(Ub

不久前,有人建议我将代码改为使用PDO,以便参数化查询并在数据库中安全地保存HTML

那么主要的问题是:

  • 我看了一下,我真的不知道应该把它放在哪里,
    $./configure——使用pdo mysql
    string

  • 我正在构建的站点实际上只需要一个页面的PDO。虽然我可以考虑重新编写它,但这需要一段时间,我需要页面运行得很快,所以我不能完全关闭MySQL。如果我安装了PDO,我还能够使用
    mysql.*
    处理程序吗


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

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


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

    这是一个好问题,但我认为您误解了所读内容

    安装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团队发布了一个脚本。我不知道是否可以定制,但这是官方的

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

    但是有一些细微的差别你可能没有意识到

    首先,到目前为止,您可能已经用类似于URL的方式编写了所有查询,并使用URL本身传递参数。使用PDO,所有这些都是在用户界面级别下完成的。用户界面将球交给PDO,PDO将球带到球场,并将球植入数据库,以获得7分触地得分。。他得了7分,因为他拿到了,而且比通过URL传递信息安全得多

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

    以及:

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

    其他来源:

    Re:url中的MySQL函数php.net/manual/en/ref.pdo MySQL.php

    回复:三层体系结构-为应用程序增加安全性

    Re:使用UML的面向对象设计 如果你真的想了解更多,这是市场上最好的书,Grady Booch是UML之父

    或者和比特猴子核实一下。那里有一个小组,我相信你可以和他们一起学到很多东西

    >

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

    如果您需要一个带有MySQL的CakePHP Docker容器,我已经为此创建了一个Docker映像!不必担心设置它。它只是工作

    • GitHub:
    • DockerHub:
    下面是我如何在基于Ubuntu的映像中安装的:

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


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

    extension=pdo.so
    extension=pdo_mysql.so
    
    重新启动Web服务器(例如,使用“sudo service apache2 restart”) ->每项罚款:-)


    要查找当前活动php.ini文件的位置,可以使用phpinfo()或此处的其他提示:

    首先通过运行命令安装必要的PDO部件

    `sudo apt-get install php*-mysql` 
    
    其中*是php的版本名,如5.6、7.0、7.1、7.2

    安装后,您需要提到这两个语句

    extension=pdo.so
    extension=pdo_mysql.so
    
    在.ini文件中(如果已经存在,则取消注释),并通过命令重新启动服务器

    sudo service apache2 restart
    

    好的,我在我的php.ini文件中查找到,默认情况下pdo处于启用状态,我仍然需要知道我是否可以同时使用pdo和mysql_*处理程序…@YuriCollector'sEditionRossi更新了答案。值得一提的是,您需要在之后重新启动apache才能应用更改。@jonapas如果您在ubuntu上,尝试使用
    sudo apt get update更新
    ,然后根据答案运行原始安装。谢谢ryAn_Hdot!但这对我也不起作用。我现在的解决方案是:我运行的是php7,我必须执行
    sudo apt get install php mysql
    ,所以如果我想同时使用这两种连接方法,我必须同时使用这两种连接方法?我的意思是:我已经有50个页面在运行了,有很多代码,花了一年的时间开发,我无法回头
    extension=pdo.so
    extension=pdo_mysql.so
    
    sudo service apache2 restart