if(!($dblink=mysql_connect($dbhost,$dbuser,$dbpass))){
printf("MySql Failed!!!!!\n");
printf("Error:".mysql_error());
die();
}
mysql_select_db($dbdatabase)

解决方案 »

  1.   

    你在命令行上连它的mysql数据库,测试一下
      

  2.   

    有可能是服務器數據庫連接數有限制,這個可以在php.ini裏面設置的你換成用mysql_pconnect試一試
      

  3.   

    其次too many connection....也说明了你程序的问题!
    if(!($result=mysql_query($query))){ }就此没必要,不利于阅读。
    用or die()就行了呀。如果真要,那是你想在{}内写更详细的信息??
    while($sub=mysql_fetch_array($result)){ }
    可用while($sub[$i]=mysql_fetch_array($result)){ }更好,不用担心体内语句多造成易错!
    for($j=0;$j<$i;$j++) { 
    $query='SELECT id,name FROM `subject` where father_id='.$topsubject[$j]['id']; ....}不是好做法;这就是服务器出现too many connection....的原因吧。你这样会造成瞬时内N次服务联接。====其实有SQL语句能一次实现你的想法的(从第用二维组存数据到N次服务器联接)====为何不仔细看看SQL文档??
    祝你做得更好!
      

  4.   

    多谢zymefor($j=0;$j<$i;$j++) { 
    $query='SELECT id,name FROM `subject` where father_id='.$topsubject[$j]['id']; ....}sql我不是很熟呢是不是应该for($j=0;$j<$i;$j++) { 
    $query='SELECT id,name FROM `subject` where father_id='.$topsubject[$j]['id']. or father_id='.$topsubject;}
    类似的,把$topsubject[$j]['id']都连到一个query里?
    然后一次query完?我现在不太明白,query完后,fetch时是否还要link到mysqlserver?
    多谢!
      

  5.   

    如果把多次query改成多次fetch就可以提高效率了吗?
      

  6.   

    $query1='select id,name from book where id='.$itembookid;
            while(list($n,$itembookid)=each($data)){
                      $query1.=' or id='.$itembookid;
    }
        $result1=mysql_query($query1) or die(mysql_error()); $i=0;
        while(($book[$i]=mysql_fetch_array($result1))){$i++;}我改成这样写了,速度好像有一些提升。
    但是我这里本来就是宽带,看的不明显。
    不知道是不是改这么弄?