PHP数据库常出现哪些问题?(3)_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP数据库常出现哪些问题?(3)

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:问题哪些出现数据库
黑客防线网安网讯:  现在我不是获得最大的id值,而是直接使用INSERT语句来插入数据,然后使用SELECT语句来检索最后插入的记录的id。该代码比最初的版本及其相关模式要简单得多,且效率更高。    问题3:...
  现在我不是获得最大的id值而是直接使用INSERT语句来插入数据然后使用SELECT语句来检索最后插入的记录的id该代码比最初的版本及其相关模式要简单得多,且效率更高
  
  问题3:使用多个数据库
  
  偶尔,我们会看到一个应用程序中,每个表都在一个单独的数据库中。在非常大的数据库中这样做是合理的,但是对于一般的应用程序,则不需要这种级别的分割。此外,不能跨数据库执行关系查询,这会影响使用关系数据库的整体思想,更不用说跨多个数据库管理表会更困难了。
  
  那么,多个数据库应该是什么样的呢?首先,您需要一些数据。清单7展示了分成4个文件的这样的数据。
  
  Files.sql:
  
  CREATETABLEfiles(
  
  idMEDIUMINT,
  
  user_idMEDIUMINT,
  
  nameTEXT,
  
  pathTEXT
  
  );
  
  Load_files.sql:
  
  INSERTINTOfilesVALUES(1,1,'test1.jpg','files/test1.jpg');
  
  INSERTINTOfilesVALUES(2,1,'test2.jpg','files/test2.jpg');
  
  Users.sql:
  
  DROPTABLEIFEXISTSusers;
  
  CREATETABLEusers(
  
  idMEDIUMINT,
  
  loginTEXT,
  
  passwordTEXT
  
  );
  
  Load_users.sql:
  
  INSERTINTOusersVALUES(1,'jack','pass');
  
  INSERTINTOusersVALUES(2,'jon','pass');
  
  清单7.数据库文件
  
  在这些文件的多数据库版本中,您应该将SQL语句加载到一个数据库中,然后将usersSQL语句加载到另一个数据库中。用于在数据库中查询与某个特定用户相关联的文件的PHP代码如下所示。
  
  <?php
  
  require_once("DB.php");
  
  functionget_user($name)
  
  {
  
  $dsn='mysql://root:password@localhost/bad_multi1';
  
  $db=&DB::Connect($dsn,array());
  
  if(PEAR::isError($db)){die($db->getMessage());}
  
  $res=$db->query("SELECTidFROMusersWHERElogin=?",
  
  array($name));
  
  $uid=null;
  
  while($res->fetchInto($row)){$uid=$row[0];}
  
  return$uid;
  
  }
  
  functionget_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*FROMfilesWHEREuser_id=?",
  
  array($uid));
  
  while($res->fetchInto($row)){$rows[]=$row;}
  
  return$rows;
  
  }
  
  $files=get_files('jack');
  
  var_dump($files);
  
  ?>
  
  清单8.Getfiles.php
  
  get_user函数连接到包含用户表的数据库并检索给定用户的ID。get_files函数连接到文件表并检索与给定用户相关联的文件行。
  
  做所有这些事情的一个更好办法是将数据加载到一个数据库中,然后执行查询,比如下面的查询。
  
  <?php
  
  require_once("DB.php");
  
  functionget_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(
  
  "SELECTfiles.*FROMusers,filesWHERE
  
  users.login=?ANDusers.id=files.user_id",
  
  array($name));
  
  while($res->fetchInto($row)){$rows[]=$row;}
  
  return$rows;
  
  }
  
  $files=get_files('jack');
  
  var_dump($files);
  
  ?>
  
  清单9.Getfiles_good.php
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17560-1.html
网站维护教程更新时间:2012-09-21 05:21:12  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer