Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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:使用什么?_Php_Mysql_Sql_Pdo - Fatal编程技术网

PHP:使用什么?

PHP:使用什么?,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,好的,我正在为我所在城市的一个社区项目工作 目前我只做了登录页面和会话内的一个页面 现在,在我编写更多代码之前,我想确保进一步的编码(也许重新编码我到现在为止所做的工作)是简单和安全的 我使用普通的直接mysql_query()与数据库对话 我已经看到越来越多的东西在图书馆被称为“PDO”和其他一些。他们更安全吗?也许更快?你是如何使用它的 我的意思是,当我处理查询时,我只使用简单的select、where、from、insert、delete、groupby等。你在PDO中做什么?你能把普通查

好的,我正在为我所在城市的一个社区项目工作

目前我只做了登录页面和会话内的一个页面

现在,在我编写更多代码之前,我想确保进一步的编码(也许重新编码我到现在为止所做的工作)是简单和安全的

我使用普通的直接mysql_query()与数据库对话

我已经看到越来越多的东西在图书馆被称为“PDO”和其他一些。他们更安全吗?也许更快?你是如何使用它的

我的意思是,当我处理查询时,我只使用简单的select、where、from、insert、delete、groupby等。你在PDO中做什么?你能把普通查询中的查询转换成PDO语句吗

示例:如何在PDO中编写此代码:

mysql_quey("SELECT * FROM users WHERE id = '$id'");
任何链接到PDO的教程,有一个相对正常的英语理解将是伟大的

或者有没有比PDO更好的选择?我不需要最大限度的终极,最好的和先进的。我只希望它安全,以防止正常和典型的SQL注入


任何详细且信息充分的回答都将被接受。

您应该使用框架。它们有很多:Kohana、Symfony、CakePHP、CodeIgniter等等

大多数人不仅会处理数据库问题(比如mySQL注入),还会处理许多常规功能以及模板、可重用元素、路由等


看看它们。

您应该使用一个框架。它们有很多:Kohana、Symfony、CakePHP、CodeIgniter等等

大多数人不仅会处理数据库问题(比如mySQL注入),还会处理许多常规功能以及模板、可重用元素、路由等


看看它们。

在与MySQL这样的SQL数据库交互时,处理安全问题最方便的方法是使用预处理语句。对于这些,当查询连接两部分时,您不必转义值:语句本身(带有占位符的泛型)和稍后添加到正确位置的值。这是针对SQL注入的最强大的保护形式

像PDO这样的库还提供了其他优势,例如抽象(除非您需要针对数据库平台的黑客攻击,否则即使更改了DBMS,您也可以重用相同的代码)、OO接口、帮助函数、与对象更好的交互(请参阅)以及其他您可能需要或不需要的东西,具体取决于您的项目


最后,我建议考虑一个比简单的
mysql\u*
更高级的库,因为它只是最基本的交互。

在与像mysql这样的SQL数据库交互时,处理安全问题最方便的方法是使用预处理语句。对于这些,当查询连接两部分时,您不必转义值:语句本身(带有占位符的泛型)和稍后添加到正确位置的值。这是针对SQL注入的最强大的保护形式

像PDO这样的库还提供了其他优势,例如抽象(除非您需要针对数据库平台的黑客攻击,否则即使更改了DBMS,您也可以重用相同的代码)、OO接口、帮助函数、与对象更好的交互(请参阅)以及其他您可能需要或不需要的东西,具体取决于您的项目


最后,我建议考虑一个比简单的
mysql.*
更高级的库,因为它只是最基本的交互。

PDO更好,原因如下:

  • 不仅支持MySQL,还支持sqlite、ODBC等
  • 本地支持
  • 支持阻止SQL注入
使用准备好的语句,您可以这样编写代码:

$sth = $dbh->prepare('SELECT * FROM users WHERE id=:id');
$sth->execute(array(':id'=>$id));

有关更多信息,请参阅。

PDO更好,原因如下:

  • 不仅支持MySQL,还支持sqlite、ODBC等
  • 本地支持
  • 支持阻止SQL注入
使用准备好的语句,您可以这样编写代码:

$sth = $dbh->prepare('SELECT * FROM users WHERE id=:id');
$sth->execute(array(':id'=>$id));
有关更多信息,请参阅