您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

快速学习PHP数据库文件使用_PHP教程

2024/2/21 0:06:59发布17次查看
php还是比较常用的,于是我研究了一下php数据库文件,在这里拿出来和大家分享一下,希望对大家有用。我们会看到一个应用程序中,每个表都在一个单独的数据库中。在非常大的数据库中这样做是合理的,但是对于一般的应用程序,则不需要这种级别的分割。此外,不能跨数据库执行关系查询,这会影响使用关系数据库的整体思想,更不用说跨多个数据库管理表会更困难了。 那么,多个数据库应该是什么样的呢?首先,您需要一些数据。清单 1 展示了分成 4 个文件的这样的数据。
清单 1. php数据库文件
files.sql:  create table files (  id mediumint,  user_id mediumint,  name text,  path text  );   load_files.sql:  insert into files values ( 1, 1, 'test1.jpg', 'files/test1.jpg' );  insert into files values ( 2, 1, 'test2.jpg', 'files/test2.jpg' );   users.sql:  drop table if exists users;  create table users (  id mediumint,  login text,  password text  );   load_users.sql:  insert into users values ( 1, 'jack', 'pass' );  insert into users values ( 2, 'jon', 'pass' );  
您可以用很多的方式创建数据库设计、数据库访问和基于数据库的 php 业务逻辑代码,但最终一般以错误告终,以及在遇到这些问题时如何修复它们。在这些文件的多数据库版本中,您应该将 sql 语句加载到一个数据库中,然后将 users sql 语句加载到另一个数据库中。用于在数据库中查询与某个特定用户相关联的文件的 php 代码如下所示。get_user 函数连接到包含用户表的数据库并检索给定用户的 id。get_files 函数连接到文件表并检索与给定用户相关联的文件行。做所有这些事情的一个更好办法是将数据加载到一个数据库中,然后执行查询,比如下面的查询。清单 2. php数据库文件getfiles.php
<?php  require_once(db.php);   function get_user( $name )  {  $dsn = 'mysql://root:password@localhost/bad_multi1';  $db =& db::connect( $dsn, array() );  if (pear::iserror($db)) { die($db->getmessage()); }   $res = $db->query( select id from users where login=?,array( $name ) );  $uid = null;  while( $res->fetchinto( $row ) ) { $uid = $row[0]; }   return $uid;  }   function get_files( $name )  {  $uid = get_user( $name );   $rows = array();   $dsn = 'mysql://root:password@localhost/bad_multi2';  $db =& db::connect( $dsn, array() );  if (pear::iserror($db)) { die($db->getmessage()); }   $res = $db->query( select * from files where user_id=?,array( $uid ) );  while( $res->fetchinto( $row ) ) { $rows[] = $row; }  return $rows;  }   $files = get_files( 'jack' );   var_dump( $files );  ?>  
清单 3. getfiles_good.php
<?php  require_once(db.php);   function get_files( $name )  {  $rows = array();   $dsn = 'mysql://root:password@localhost/good_multi';  $db =& db::connect( $dsn, array() );  if (pear::iserror($db)) { die($db->getmessage()); }   $res = $db->query(select files.* from users, files where  users.login=? and users.id=files.user_id,  array( $name ) );  while( $res->fetchinto( $row ) ) { $rows[] = $row; }   return $rows;  }   $files = get_files( 'jack' );   var_dump( $files );  ?>  
该代码不仅更短,而且也更容易理解和高效。我们不是执行两个查询,而是执行一个查询。尽管该问题听起来有些牵强,但是在实践中我们通常总结出所有的表应该在同一个数据库中,除非有非常迫不得已的理由。
http://www.bkjia.com/phpjc/446457.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/446457.htmltecharticlephp还是比较常用的,于是我研究了一下php数据库文件,在这里拿出来和大家分享一下,希望对大家有用。我们会看到一个应用程序中,每个...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product