简单人生
幻想指点江山,梦中激扬文字

[2006-08-23]
       更新4、5

        总体来说这本书还算可以,至少比以前什么都不写就拿出来骗钱的书要好多,但是书上还是有很多错误,不知道是印刷的原因还是作者的原因。

        书中代码下载:http://www.cnitblog.com/Files/neatstudio/archive.rar

         只能随着我的翻阅,而逐步更新书中的小BUG,希望对PHP的爱好者和初学者有点用吧。
        由于我自己看书也是信手翻的,不可能一点点全部看过去,有点地方会跳过的,如果发现有问题,你们可以在这里留言,我会尽量解答。
        我不是作者,只是想为PHP爱好者尽点力。

        这本书让我不习惯的地方是:代码风格不统一,介绍函数和例程的代码风格完全两样,这样会误导读者的,建议在程序编写时,使用介绍函数的那种风格:
     

<?
// 尽量使用这种风格
function  function_name(  $arg_1   ,   $arg_2 )
{
   
return   .. ;
}

// 少用这种风格
function  function_name (  $arg_1   ,   $arg_2 ){
    
return   . ;
}
?>

虽然第二种风格节约空间,但为了更清楚的看好代码,初学者建议还是使用第一种风格。


  1. P10 , 第一个示例代码中的<input type="submit" name=" submit" value=".........">这里面的name=" submit"多了一个空格。
  2. P13. 这个示例是有问题的,主要是第一个require_source.php,其实它的内容应该象第二个示例一样的,估计它的内容应该是
    <?php
        
    echo "<h2>文件require_source.php被调用</h2><p>";
    ?>
  3. P39.示例代码中的注释请不要看,这个注释是错误的,正确显示P40页上有输出。
  4. P44 的例子有问题,如果mail格式是aaa.bbb@agc.com这样的话,程序执行就有问题,因为它判断了$hasAtSymbol<$hasDot,这是不对的,一般情况下,简易判断的话,这个小判断就不要留在上面了,虽然大多数情况下,mail格式都是 username@domain.com,但是也会有user.name@domain.com这种情况的。
  5. P44的第二个例子和第一个例子的问题一样,但第二个例子只是演示,因此无法说正确不正确。
posted on 2006-08-21 08:20 简单人生 阅读(3198) 评论(26)  编辑 收藏 引用 所属分类: Loving PHP
Comments
  • # re: 《精通PHP+MYSQL应用开发》纠错
    x
    Posted @ 2006-08-24 09:34
    说实话,这本书也是骗钱的,基本没有上面自己的东西  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2006-08-24 21:51
    现在是编书,不是著书,不能要求太高,只希望能给PHPER一条比较清晰的路走走而已!
    不看的过分重,只是……尽量帮他纠纠错吧!
    看到哪里纠到哪里  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    Marvinux
    Posted @ 2006-09-10 21:24
    P10 , 第一个示例代码中的<input type="submit" name=" submit" value=".........">这里面的name=" submit"多了一个空格。

    这不是多了一个空格,而是那个双引号用了全角,是编辑的错误吧。P13的错误实在太离谱了,内容应该是:
    (1)文件require_source.php
    -------------------------------------
    <!--调用文件:include_source.php-->
    <?php
    include("include_source.php");
    ?>
    -------------------------------------

    这本书我还没有看完,评论好坏还尚早,但就单细读第一章之后,总的感觉一般,犯了较大的笔误,可想审稿实在太不认真和负责!
    不知道“简单人生”兄有否继续看这本书,若有,希望以后能多点交流。  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2006-09-12 23:47
    呵呵,随时可以交流。你可以加我QQ的!  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    周喜
    Posted @ 2007-01-18 16:24
    《精通PHP+MYSQL应用开发》24个例子
    一登陆就出错!添加用户也是这样!

    Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in

    出现这个问题是什么意思??  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    周喜
    Posted @ 2007-01-18 16:27
    Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in D:\sinopecoa\DataBase.php on line 7  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-01-18 21:38
    ......
    正常。你看看,这种情况,有可能是结尾没有;或者字符变成中文字符了。

    如果可以,麻烦你把全部代码贴出来才行  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    周喜
    Posted @ 2007-01-19 08:26
    我的QQ:20574816
    代码怎么贴在这?  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    周喜
    Posted @ 2007-01-19 08:35
    <!--数据库类文件:DataBase.php-->
    <?php
    require("sys_conf.inc"); //包含系统配置文件
    class DataBase
    {
    //属性
    public $mConnId; //连接标识
    public$mSqlString; //待执行的SQL语句
    public $mResultArray; //执行Select语句返回的结果数组

    //构造函数
    function __construct($pHost,$pUser,$pPwd,$pDbName)
    {
    $this->mConnId=mysql_connect ($pHost,$pUser,$pPwd);//建立连接
    mysql_select_db($pDbName, $this->mConnId); //选择数据库
    }

    //__destruct:析构函数,断开连接
    function __destruct()
    {
    //mysql_close($this->mConnId);
    }

    //增删改数据
    function ExecuteSql()
    {
    //echo $this->SqlString."<br>";
    mysql_query($this->mSqlString);
    }

    //查询数据,返回值为对象数组,数组中的每一元素为一行记录构成的对象
    function Query(){
    //echo $this->SqlString."<br>";
    $i=0;
    $query_result=mysql_query($this->mSqlString,$this->mConnId);
    while($row=mysql_fetch_object($query_result))
    {
    $this->mResultArray[$i++]=$row;
    }
    }

    }//class DataBase

    /*
    $db=new DataBase($DBHOST,$DBUSER,$DBPWD,$DBNAME);

    $db->SqlString="insert into test(t1,t2) values('1','2')";
    $db->ExecuteSql();

    $db->SqlString="select * from test";
    $db->Query();
    print_r($db->mResultArray);

    $db->__destruct();
    $db=NULL;
    //*/
    ?>

    提示第七行!把pulice改为var后提示

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\sinopecoa\DataBase.php on line 35

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\sinopecoa\DataBase.php on line 36
      回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-01-19 11:08
    public$mSqlString; //待执行的SQL语句

    少空格 ?
    你用的是PHP4还是PHP5?
      回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    周喜
    Posted @ 2007-01-19 15:19
    p'h'p4  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    周喜
    Posted @ 2007-01-19 15:20
    本身有空格的呀  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-01-20 00:11
    已经加你QQ  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-01-20 00:12
    可以QQ上聊。顺便说一声,PHP4的class里是不支持public的。因此,你得把所有的public都先改成var吧  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    DW
    Posted @ 2007-03-01 10:42
    谢谢呀.回去试试  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    yeti
    Posted @ 2007-03-27 10:37
    两种风格都没有错!
    一般说来,西方喜欢用第二种:
    function xyz() {
    return ...;
    }

    国内常用第一种:
    function xyz()
    {
    return ...;
    }


    你自己孤陋寡闻了  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-03-27 11:26
    呵呵,楼上说的好象有点问题。
    以前在C下面的时候,大多数都是使用
    function aa(){
    }
    这种方式,因为那时候显示屏小,这样可以节约视觉空间,而且由于这样的编码不是很直观,在后来的程序中都不太使用了。 以前VC默认的function就是那样的,但到了C#后,都变成了
    function aa()
    {
    }
    看起来直观而已。

    所以我上面的留言是:初学者尽量使用
    function aa()
    {
    }
    查错也比较方便。在代码收缩后,看起来也比较爽  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    pfeffer
    Posted @ 2007-04-13 05:47
    你好,楼主,我真在本机上调试C24里面的代码,可是当我运行*Update.php或者*View.php是总出来下面警告!
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\httproot\mywork\DataBase.php on line 36

    请问DataBase.php出现了什么情况,应该怎么改?期待解答,谢谢!~  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-04-13 09:16
    你自己看一下,36行,是mysql_fetch_object,而你的出错信息却说它不是一个资源,那就证明,你读取有误,或者你的sql查询有误。
    你在36行前加一个 echo( $this->SqlString );
    然后,COPY出来,到phpmyadmin里执行一下,看看错在哪里
      回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    朱信林
    Posted @ 2007-05-13 16:44
    真是好人呀..谢谢代码啦.  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    Thoreau
    Posted @ 2007-07-11 21:20
    论坛出现问题,提示如下
    Query Error: SELECT * FROM pw_threads WHERE fid='24' AND ifcheck='1' ORDER BY topped DESC, lastpost DESC LIMIT 0,3000

    The URL Is:
    http://www.youngtv.net/bbs/thread.php?fid=24

    MySQL Server Error:
    Can't open file: 'pw_threads.MYI'. (errno: 145) ( 1016 )

    You Can Get Help In:
    http://www.phpwind.net

    不知道怎么解决,网上有人说用数据库修复pw_thread
    请高手指点~
    谢谢
      回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    简单人生
    Posted @ 2007-07-11 21:37
    如果你可以直接操作数据库,你完全可以到命令行下进行一下Repair table命令,如果不行的话,你用PHPMYADMIN,打开数据库,选中你要修复的表,到表结构的最下面有一个下拉框,选择:修复。如果你没有办法使用PHPMYADMIN,不知道phpwind是否有执行sql的功能,如果有的话,你直接运行REPAIR TABLE `'pw_threads` ,就可以了。因为discuz有这个功能,我想PW应该也会有的  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    天亮了说晚安
    Posted @ 2008-12-24 17:32
    Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in D:\sinopecoa\DataBase.php on line 7

    出现这个问题是因为这个程序是在PHP5环境下编写的,你的运行环境可能低于PHP5,我也遇到过这样的问题。把运行环境升级到PHP5就OK了。  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错[未登录]
    简单人生
    Posted @ 2008-12-25 13:29
    我也是这样和那位出问题的朋友说的,他说他是PHP4,我让他改成var,毕竟。PHP4不支持public,呵呵  回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    健康
    Posted @ 2009-05-14 23:02
    谢谢。
      回复  更多评论   
  • # re: 《精通PHP+MYSQL应用开发》纠错
    厦门酒店预订
    Posted @ 2009-07-30 17:50
    原来这么多人都看得这么仔细啊  回复  更多评论   
只有注册用户登录后才能发表评论。