解决方案 »

  1.   

    在你贴出的代码中,没有看到 mysql_query
    你只能根据错误信息指示的行号排查错误
      

  2.   

    php代码中数据库的密码要和电脑里的数据库中的密码一样 
      

  3.   


    require_once (dirname(__FILE__) . "/../classes/mode/mysql_mode_class.php");
    require_once (dirname(__FILE__) . "/../classes/mode/mysql_list_class.php");
    //这两行也有在header.php中包含
    //这两个类中的执行函数是一样的
     class MySqlList { //sql params
    public $server;
    public $username;
    public $password;
    public $database;
    public $code; function MySqlList(){
    global $webpost;
    // include("xmlparse.inc");
    $sqlist = parse_xml_config($webpost['path']['sqlist'],"sqlist");
    if(!empty($sqlist) && is_array($sqlist)){
    foreach($sqlist['list'] as $list){
    if(strcmp($list['server'],$_SERVER['SERVER_ADDR'])){
    $config = $list;
    }
    }//end for
    }//end if
    if(empty($config))
    die("读取MySql配置出错。"); $this->server = $config['server'];
    $this->username = $config['username'];
    $this->password = $config['password'];
    $this->database = $config['database'];
    }  //connect sql
      function connect(){
    $connect = mysql_connect($this->server, $this->username, $this->password);
    if (!$connect){
    die("服务器连接失败:".mysql_error());
    }
    $conn = mysql_select_db($this->database,$connect) or die("数据库连接失败!<br/>");
    mysql_query("set names utf8");
    return $connect;
    } //execute sql
    function querySql($sql,$array=2,$fail=false,$succe=false,$suc_href=false,$type=MYSQL_ASSOC){
      global $webpost;
    $result = mysql_query($sql,$this->connect()); //提示在这里终止
    if(!$result)
           die("SQL: {$sql} <br>Error: " . mysql_error() );
    if (mysql_affected_rows() >0){
    // write_sys_log("success SQL:".$sql);
    switch($array){
    case 1:
    $arry = array();
    while($arr = @mysql_fetch_array($result,$type)){
    array_push($arry,$arr);
    }
    return $arry;
    case 2:
    $arr = @mysql_fetch_array($result,$type);
    return $arr;
    default:
    return 1;
    }
    }elseif(mysql_affected_rows() == 0 && !mysql_errno()){
    // write_sys_log("empty SQL:".$sql);
    return false;
    }elseif(mysql_errno()){
    // write_sys_log("failed SQL:".$sql);
    return 0;
    }
    mysql_close();
    }
    #获取另一台数据库的用户数据
      function getDomainUserList($domain){
      $sql = "SELECT m.id,m.did,m.code,username,realname,domain FROM table_a m ".
    "JOIN table_b d ON m.did=d.id WHERE domain='{$domain}'";
    return $this->querySql($sql,1);
      }
     }思路上大概哪里有问题?
      

  4.   

    除 mysql_query 外,其他 mysql 族函数均没有报错
    只能说 mysql 扩展安装(编译)错误
      

  5.   

    终于排查出来了,是因为单独的搜索页没有获取到$_SESSION。
    但是我加session_start()了,而且是由前面的列表页,通过$.ajax获取搜索页的内容。
    为什么搜索页的$_SESSION是空的?
      

  6.   

    在 $_SESSION 为空的程序中检查 get_included_files 返回的文件列表通常 session_start() 宜放在全局的公共文件中
    况且 php 5.4 还会检查该函数是否被执行过,如执行过将会产生警告信息
      

  7.   

    问题解决了。
    原因:在搜索页的包含页中,header()和session_start()的位置搞错了。把包含页中的header注掉就好了。