您的位置是: 软件 > 开发者网络 > 开发工具 > Web开发 > PHP > 正文 查cseek报价

PHP编程之纠错指南(3)
2000-10-25作者: 吕晓波出处: YESKY
我对此感兴趣
订阅电子杂志
发表评论
advertisement
热点推荐
· 群雄逐鹿 十四种Java开发工具点评
· 网文快捕,将网络资源搬回家
· Windows系统瘦身计划
· PS多媒体教程带你享受快乐学习
· 网络游戏外挂设计深度探索
· 武装你的桌面,桌面工具大阅兵
天极搜索引擎服务
资讯  产品  经销商  下载  社区

br>  关于数据库在WEB编程当中,数据库的作用已经越来越不容忽视。提到数据库,应当说PHP具有非常强大的数据库支持功能,从FileMaker到Oracle,几乎与所有的数据库系统都可以实现无缝连接。为了方便本文的讲解,我们将主要以MySQL为例进行说明。不过对于其它的数据库应用也同样适用。

  使用PHP进行数据库操作一般需要包括以下语句:

  $#@60;?

  $Host="localhost";

  $MySQL_UserName="root";

  $MySQL_UserPass="password";

  $MySQL_Database="db";

  $Query="SELECT * FROM domain";

  mysql_connect ($Host, $MySQL_UserName, $MySQL_UserPass);

  mysql_select_db ($MySQL_Database);

  $Result_ID=mysql_query ($Query);

  while ($Result=mysql_fetch_row($Result_ID)){

  print "------------------$#@60;BR$#@62;";

  print "$Result[0]$#@60;BR$#@62;";

  print "$Result[1]$#@60;BR$#@62;";

  print "$Result[2]$#@60;BR$#@62;";

  print "$Result[3]$#@60;BR$#@62;";

  print "-------------------$#@60;BR$#@62;";

  }?$#@62;

  基本步骤包括建立与MySQL数据库的连接,选择数据库操作对象,然后执行查询语句。对于在上述过程中出现的错误的提示信息一般来说都能够较为准确和详细的描述所出现的问题。例如,“Connection failed due to a bad username”错误报告就清楚的指出由于用户名错误而导致与数据库的连接失败。

  我们可以对以上所提到的这些函数的返回值加以利用,从而减少出现不必要的麻烦。例如,mysql_connect函数在连接成功时会返回一个连接ID标识,如果连接失败则发出错误提示。对此,我们可以进行如下利用:

  if (!mysql_connect (’localhost’, ’root’, ’password’)){

  print "Cannot connect to MySQL$#@60;BR$#@62;";

  exit;

  }当与数据库的连接出现问题时,我们可以输出错误提示,并终止程序的执行。从长远来看,这是一项非常好的防范措施。以此方式,我们重新编写脚本如下:

  $#@60;?

  $Host="localhost";

  $MySQL_UserName="root";

  $MySQL_UserPass="password";

  $MySQL_Datab ="db";

  $Query="SELECT * FROM domain";

  if (!mysql_connect ($Host, $MySQL_UserName, $MySQL_UserPass)){

  print "Cannot connect to MySQL: ".mysql_error();

  exit;

  }

  if (!mysql_select_db ($MySQL_Database)){

  print "Cannot select db$#@60;BR$#@62;";

  exit;

  }

  if (!$Result_ID=mysql_query ($Query)){

  print "Query Error: ".mysql_error();

  exit;

  }

  while ($Result=mysql_fetch_row($Result_ID)){

  print "------------------$#@60;BR$#@62;";

  print "$Result[0]$#@60;BR$#@62;";

  print "$Result[1]$#@60;BR$#@62;";

  print "$Result[2]$#@60;BR$#@62;";

  print "$Result[3]$#@60;BR$#@62;";

  print "-------------------$#@60;BR$#@62;";

  }?$#@62;

  这样,当程序出现问题时,我们就可以立刻找到错误的根源,从而能够做到有的放矢。

  接下来,我们就可以对数据库进行查询。不过,很多时候,当我们运行编写好的查询语句时,却得不到任何返回数据。到底是什么地方出错了呢?最好的解决方法是把SQL语句赋予一个变量,例如:

  $#@60;?

  ....

  $SQL="SELECT * FROM $TableName WHERE $ColumnName $#@62; $Limit";

  $Result_ID=mysql_query($QUERY);

  ...?$#@62;

  然后当出现问题时,使用“print”或“echo”命令显示该语句。注意检查$ColumnName和$Limit的拼写是否正确,是否无意当中创建了新的变量。使用输出显示的方法可以很容易的找到并解决拼写错误的问题。但是如果我们将SQL语句显示出来之后仍然没有找到明显的错误该怎么办呢?这里我们可以把输出的语句粘贴到象Mysql命令行接口这样的命令行工具中,看一看是否能够返回数据。如果还是无法解决问题,就应该查看一下所使用帐号的用户权限。

  如今,我们可以使用许多免费提供的类完成绝大部分的数据库操作。PHP Classes(http://phpclasses.upperdesign.com/)上就有许多相关的信息,可以供有兴趣的用户参考。其中,MetaBase能够提供不依赖某种数据库系统的查询和管理。如果用户正在同时使用几种不同的数据库系统,或者希望自己的程序能够移植到其它的数据库平台上的话,可以留意一下MetaBase的使用。

  注意事项最后,我们把使用PHP进行编程的过程中所应当注意的一些问题进行一下汇总,希望能够对大家有所帮助。

  1.检查(),[],以及{}等符号,看看是否成对出现。

  2.检查字符串,注意如果要想在“”当中再使用“”的话,必须使用转义符“\”。

  3.检查保留关键字的拼写是否正确。例如,myslq_num_rows()应当改为mysql_num_rows。

  4.对照PHP用户手册(www.php.net/manual),检查程序的语法是否正确。

  5.如果在函数中使用全局变量,一定不要忘了进行变量声明。

  6.如果希望使用setCookie()函数设置Cookie信息,一定要确保在此之前没有输出任何字符,包括在“$#@60;?”或“$#@60;?php”之前不能有任何空格。“$#@60;?”必须作为程序的第一行。

  7.如果数据库查询操作失败,使用echo或print写出查询语句,检查语法是否正确,特别应当注意语句中出现的变量。

  8.如果SQL语句没有明显问题,可以尝试着使用数据库系统所提供的命令行接口。

  9.如果问题仍然没有解决,应当检查是否具有足够的数据库访问权限。

  10.如果出现“can’t redeclare foo()”错误,表明用户可能把同一个文件引用了两次。可以使用include_once()函数避免出现这一问题。

  11.注意区分大小写。例如,$Foo和$FOO是两个不同的变量。

  12.注意数组的正确使用格式。例如:$this-$#@62;$foo()和$this-$#@62;$variable应当分别改为$this-$#@62;foo()和$this-$#@62;variable。


【责任编辑:】
推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志发表评论

天极商业街
·激情美女让你想入非非
·图铃梦工厂下载无限!
·找寻童真,卡通专题
·夏日激情交友社区!
·星座运程,预测人生
CSEEK搜索
相关内容阅读排行榜
  • 等待是一种美丽
  • 半兽人的神话
  • 微软认为XBOX2没必要兼容XBOX
  • 日本发行新型限定版GameCube
  • 图谋低端市场 Sempron一门三杰再续辉煌
  • 密蜂大盗木马 开MM摄像头偷窥隐私
  • Win2000注册表的备份与恢复
  • 制作无人值守的Win XP安装光盘

  • advertisement

     短信乐园
    好名好运 每日运程 姓名配对 情侣缘分 生命曲线 三生三世 自我认知 前世今生
    游戏嘉年华 爱情宝石 魔法水晶 麻辣竞猜 魔法占卜 暗恋表白 星座运程 浮生记


    · 至少还有你-林忆莲
    · 东风破-周杰伦
    · 什么都不怕-杨千桦
    · 下一站天后-Twins
    · 不羁的风-张国荣
    · 帅哥接电话
    · 严守一标准铃声
    · 0.01公分
    · 下雨收衣服啦
    · 快点接我电话吧

    欲望都市 成人笑话 图铃包月 天气预报 麻辣生活 都市报
    体育新闻 娱乐新闻 点歌祝福 情人悄悄话