mysql_select_db("username", $connection);中username是不是db_name应该

解决方案 »

  1.   

    dbname和username是一样的,都用的“username”。不然,在我的电脑也是无法运行的。
      

  2.   

    个人感觉php代码上没有问题,本身也只是一个很简单的连接数据库操作,我觉得问题应该在sql语句上,所以检查一下sql语句是否有问题,在某种条件下能搜出来,在某种条件下就搜不出来了,这个单从php代码上,大家是无法判断的
      

  3.   

    在返回0的用户的电脑上把每一步传递的参数打印出来看看
    看是在哪一步出了问题
    再把 sql打印出来看看有没问题
    程序好像没多大问题
      

  4.   


    我修改了代码:
    <?php
    function _GetParam($Name) { 
      return $_GET[$Name];   

    $account = _GetParam("account"); 
    $product = _GetParam("product"); $connection = mysql_connect("mysql104.XXXXX.net", "username", "password") or exit("1");
    mysql_select_db("username", $connection) or exit("5");   
    $result = mysql_query("select * from table1 where account = '$account' and product = '$product'", $connection) or exit("4");   
    $num = mysql_num_rows($result) or exit("3"); 
    if ($num == 0)   

      exit("0"); 
    }  
      echo "2"; 
    ?> 结果我的返回值仍然是2,那个国外客户返回的是3,真是不可思议。
      

  5.   

    看起来好像是mysql_num_rows失效了,为什么?
      

  6.   

    首先我想问 你和那客户的数据库内容是否相同
    关于 mysql_num_rows这个函数如果提取到空的话 就会返回给or 处理
    也就是 明显是 数据库内容不同 或者sql语句问题
      

  7.   

    可能是你那个国外的朋友浏览器用的不是中文的,导致数据编码变成utf-8了,而数据库里可能是gbk编码,这速一来,传过去的用户名和商品自然就搜索不到了
    检查方法,在php程序里 var_dump($_GET);判断是否是数据库一速的编码
      

  8.   

    谢谢上面这位朋友的回答!我想可能是编码的问题。但是数据库里面的内容全都是英文的,且仅含有英文字母、数字、"."号和"@"号,除此之外,不含其他任何字符。用户名就是用户的email地址,产品名是统一的长度为两位的英文字母。数据库的编码是MySQL charset: UTF-8 Unicode (utf8),MySQL connection collation: UTF8_Unicode_ci。这样会不会有问题?