APP NEWS
五个常见 PHP 数据库问题
揭露PHP应用程序中出现的五个常见数据库问题——包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码——以及它们的解决方案。如果只有一种方式使用数据库是正确的……您可以用很多的方式创建数据库设

如果只有一种 方式使用数据库是正确的……
您可以用很多的方式创建数据库设计、数据库访问和基于数据库的 PHP 业务逻辑代码,但最终一般以错误告终。本文说明了数据库设计和访问数据库的 PHP 代码中出现的五个常见问题,以及在遇到这些问题时如何修复它们。
问题 1:直接使用 mysql
一个常见问题是较老的 PHP 代码直接使用 mysql_ 函数来访问数据库。清单 1 展示了如何直接访问数据库。
清单 1. access/get.php CODE: function get_user_id( $name )
{
$db = mysql_connect( 'localhost', 'root', 'password' );
mysql_select_db( 'users' );
$res = mysql_query( &SELECT id FROM users WHERE login='&.$name.&'& );
while( $row = mysql_fetch_array( $res ) ) { $id = $row[0]; }
return $id;
}
var_dump( get_user_id( 'jack' ) );
?> 注意使用了 mysql_connect 函数来访问数据库。还要注意查询,其中使用字符串连接来向查询添加 $name 参数。
该技术有两个很好的替代方案:PEAR DB 模块和 PHP Data Objects (PDO) 类。两者都从特定数据库选择提供抽象。因此,您的代码无需太多调整就可以在 IBM? DB2?、MySQL、PostgreSQL 或者您想要连接到的任何其他数据库上运行。
使用 PEAR DB 模块和 PDO 抽象层的另一个价值在于您可以在 SQL 语句中使用 ? 操作符。这样做可使 SQL 更加易于维护,且可使您的应用程序免受 SQL 注入攻击。
使用 PEAR DB 的替代代码如下所示。
清单 2. Access/get_good.php CODE: require_once(&DB.php&);
function get_user_id( $name )
{
$dsn = 'mysql://root:password@localhost/users';
$db =& DB::Connect( $dsn, array() );
if (PEAR::isError($db)) { die($db->getMessage()); }
$res = $db->query( 'SELECT id FROM users WHERE login=?',array( $name ) );
$id = null;
while( $res->fetchInto( $row ) ) { $id = $row[ 相关阅读 2021年最好用的10款php开发工具推荐 plsql developer怎么连接数据库-plsql developer连接数据库方法 php利用淘宝IP库获取用户ip地理位置 在 PHP 中使用命令行工具 php出现Cannot modify header information问题的解决方法大全 详解ucenter原理及第三方应用程序整合思路、方法 文章评论
查看所有0条评论>>
发表评论提交评论
热门文章
2021年最好用的10款php开发工具推荐
plsql developer怎么连接数据库-plsql developer连接数据库方法
在 PHP 中使用命令行工具
php应用程序安全防范技术研究
关于php curl获取301或302转向的网址问题
人气排行 详解ucenter原理及第三方应用程序整合思路、方法 plsql developer怎么连接数据库-plsql developer连接数据库方法 PHP中防止SQL注入攻击 PHP会话Session的具体使用方法解析 PHP运行出现Notice : Use of undefined constant 的解决办法 PHP如何清空mySQL数据库 CakePHP程序员必须知道的21条技巧 PHP采集图片实例(PHP采集) 完美解决failed to open stream: HTTP request failed! phpinfo() ?>无法执行的解决办法 2021年最好用的10款php开发工具推荐 用header或meta实现PHP页面编码的区别
关于我们| 下载帮助| 版权声明| 合作伙伴| 友情连接| 联系我们| 网站地图Copyright © 2007-2026 IT猫扑网 All Rights Reserved. 豫ICP备2026021191号-1 豫公网安备42010145200009号
{ "@context": "https://zhanzhang.baidu.com/contexts/cambrian.jsonld", "@id": "https://www.itmop.com/article/1566.html", "appid": "否", "title": "五个常见 PHP 数据库问题-IT猫扑网", "images": ["/e/data/images/notimg.gif"], "description": "{$Excerpt}", "pubDate": "2015-06-28T00:00:00", "upDate": "2015-06-28T00:00:00", "data": { "WebPage": { "pcUrl": "https://www.itmop.com/article/1566.html", "wapUrl": "https://m.itmop.com/article/1566.html", "fromSrc": "IT猫扑网" } } }





