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