我是搞java的。公司有点php的活要干。所以问题是简单的。只是我不懂php
代码如下:
<?php
function checkLogin() {

echo $_POST["km"];

$km = $_POST["km"];


$link = mysql_connect ( 'localhost', 'sunrising', 'sunrising' ); print("link::::".$link );
mysql_select_db ( 'ams', $link ); print("connection ok");
$sql = "select username from km_user where km="."'".$km."'";
echo "sql::::".$sql;  
$result = mysql_query($sql,$link); print("result::::".$result); 
if ($result == null) { print("fail"); 
$outstr = "<script>alert('无权访问该系统');history.back();</script>";
echo  $outstr;
}
else{
print("mygod"); 
$outstr = "<script>alert('UIHIH');history.back();</script>";}
}
checkLogin();
?>post接到的参数是有值的。而且在数据库里也是存在的。可就是跳不到else里面。
我感觉可能是sql语句拼的有问题。求大侠帮我看看。

解决方案 »

  1.   

    sql语句没有问题,你echo $sql;出来的语句在数据库中直接执行看看
      

  2.   

    print("result::::".$result);
    这里有值吗?
      

  3.   

    加上这句,在mysql_select_db ( 'ams', $link );后面mysql_query("set names utf8");
      

  4.   

    mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
      

  5.   

    if ($result == null) {
    改成
    if ($result == FALSE) {
    试试
      

  6.   

    if里面我改成 result == “” 就可以了。