“管理员”是不是mssql的保留字?

解决方案 »

  1.   

    数据库编码吧 用utf-8 就这点线索
      

  2.   

    按 ccxxcc(cc小超) 说的试试吧
      

  3.   

    谢谢楼上二位,能说具体一些吗?查来查去没发现其他原因,用utf-8具体怎么用?可以给个例子吗?
    我查的结果有htmlentities,convert等函数,但具体不太会用 :(代码就是这样:
    //注意连接串添加端口好的作用和写法如下,用逗号来做分隔符,而不是冒号
    $SqlServer = "xxx";
    $Uid = "xxx";
    $Pwd = "xxx";
    $DataBase = "xxx";
    $PageSize = 10; $GetPasswordSql = "select username from User where LOWER(username)=LOWER('" . $username . "')";
    echo '<br>';
    echo $GetPasswordSql;
    echo '<br>'; $ErrorMsg = "无法连接数据库!";

    $conn = mssql_connect( $SqlServer,$Uid,$Pwd )
    or die( "无法连接数据库:".mssql_get_last_message() ); mssql_select_db( $DataBase , $conn )
    or die( "无法切换数据库!" );

    $query = mssql_query( $GetPasswordSql,$conn )
    or die( "查询出现错误!" );

    $count=mssql_num_rows($query); if($count==1){
    echo $username. ' exist!';
    return true;
    }
    else{
    echo $username. ' not exist '.$count;
    return false;
    }就这个简单的代码。出现了上面那些古怪的问题 :(
      

  4.   

    是这种代码吗?呵呵,俺先试试去。查询之前执行:SET NAMES utf8(GB2312)
    另一种方法:SET CHARACTER SET utf8 (GB2312)$db  = new DB_Sql();$db->connect(__DB_DATABASE,__DB_HOSTNAME,__DB_USERNAME,__DB_PASSWORD);
    $db->query("SET CHARACTER SET utf8");$sql  = "SELECT `id`,`name` FROM `table_name`";
    $sql .= "ORDER BY `id` ASC";$db->query($sql);
    ......
    $db->free();
      

  5.   

    我试了这种办法:SET CHARACTER SET utf8 (GB2312)
    还是不行,请指点。
      

  6.   

    把$GetPasswordSql 輸出看下中文 $username情況下是不是亂碼 ,我也遇上了這個問題,用"urldecode" 和 "urlencode"試試
      

  7.   

    是吧,我输出过GetPasswordSql,看起来一切OK阿……
    我现在觉得可能和页面的charset有关系,大家有idea的都请贡献,thanks in advance.
      

  8.   

    这段代码是全的,在验证密码之前要先判断用户是否存在,调用userexist方法,这是userexist方法中的代码,这里就出错了,问题是一样的,因此贴了这段代码。
      

  9.   

    我重新测试了,应该就和charset有关,现在将问题重新表述一下:
    这是一个php下中文查询sqlserver数据库出现的问题。对于下面这个测试页面,charset是utf-8,查询英文用户名没有问题,查询中文则会出错(首贴中出现的问题)。如果在meta中把charset改成gb2312就ok了。在不改meta的情况下,如何进行处理可以解决这个中文用户名查询的问题呢?
    <html>
    <head>
    <title>test</title>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> </head>
    <body>
    <?$username=$_REQUEST['username']; echo "username: ", $username;
    echo "<br>";
    //注意连接串添加端口好的作用和写法如下,用逗号来做分隔符,而不是冒号
    $SqlServer = "XXXX";
    $Uid = "XXX";
    $Pwd = "XXX";
    $DataBase = "XXX";
    $PageSize = 10; // $username= iconv("gb2312","UTF-8", $username);
    // echo $username;
    // echo '<br>'; $GetPasswordSql = "Select username from User where LOWER(username)=LOWER('" . $username . "')"; echo '<br>';
    echo $GetPasswordSql;
    echo '<br>'; $ErrorMsg = "无法连接数据库!";

    $conn = mssql_connect( $SqlServer,$Uid,$Pwd )
    or die( "无法连接数据库:".mssql_get_last_message() ); @mssql_query("SET NAMES utf8(GB2312)",$conn); mssql_select_db( $DataBase , $conn )
    or die( "无法切换数据库!" );

    $query = mssql_query( $GetPasswordSql,$conn )
    or die( "查询出现错误!" );

    $count=mssql_num_rows($query); echo iconv("gb2312","UTF-8", "数目: "), $count; if($count==1){
    echo $username, " exist!";
    //return true;
    }
    else{
    echo $username. ' not exist ';
    //return false;
    }?>
    <form action="usercount.php" method="post">
    <input type="text" name="username">
    <input type="submit" value="submit">
    </form>
    </body>
    </html>