<?php
$sql= "SELECT ID,username,nichen,gender,hangye FROM UserInfo WHERE gender = '男'";
mysql_connect("localhost", "root", "");mysql_select_db("mydb");mysql_query("set names gb2312");$result = mysql_query($sql);$recordnum = mysql_num_rows($result);echo ($recordnum);?>结果总是0,怎么办?注明一下,gender = '男' 已经验证是存在的,我已经
mysql>alter table UserInfo modify gender char(2) character set gb2312;怎么办????

解决方案 »

  1.   

    $result = mysql_query($sql) or die(mysql_error());如有错误。请贴出。猜测极有可能是编码问题。
      

  2.   

    SELECT ID,username,nichen,gender,hangye FROM UserInfo WHERE gender = '男'你这句先在mysql里调试一下。另外你的数据库没有密码也可以?
      

  3.   

    把你的sql放在编辑器看看。看报什么错
      

  4.   

    $sql= "SELECT ID,username,nichen,gender,hangye FROM UserInfo WHERE gender = '男'";
    改成这个
    $sql= "SELECT ID,username,nichen,gender,hangye FROM UserInfo ";如果是1,说明是编码的问题。
    如果是0,说明是程序有问题。文件编码改成gb2312吧
      

  5.   


    数据库这张表的编码没有设定,我只是对这个字段做了设定:
    mysql>alter table UserInfo modify gender char(2) character set gb2312;页面的编码我不知道,我在一楼贴的就是全部的文件内容
      

  6.   

    mysql> SELECT ID,username,nichen,gender,hangye FROM UserInfo WHERE gender = '男';
    +----+-------------+--------+--------+---------------+
    | ID | username    | nichen | gender | hangye        |
    +----+-------------+--------+--------+---------------+
    | 11 | [email protected] | rrr    | 男     |               |
    | 12 | [email protected] | ttt    | 男     |               |
    | 16 | [email protected] | fff    | 男     | ???(??/??/??) |
    +----+-------------+--------+--------+---------------+
    3 rows in set (0.00 sec)
      

  7.   

    另外,我的系统是opensolaris 200805,mysql5.5.15,php5.3.10
      

  8.   

    如果如#8
    mysql> SELECT ID,username,nichen,gender,hangye FROM UserInfo WHERE gender = '男';
    可以得到正确结果
    那么
    请注释掉 php 程序中的
    mysql_query("set names gb2312");
      

  9.   


    注释掉就会有错误输出:
    Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
      

  10.   

    $sql= "SELECT ID,username,nichen,gender,hangye FROM UserInfo WHERE ID=11;mysql_connect("localhost", "root", "");
    mysql_select_db("mydb");
    mysql_query("set names gb2312");
    $result = mysql_query($sql);
    $r = mysql_fetch_assoc($result);echo base64_encode($r['gender']);贴出结果
      

  11.   

    你保持数据库,页面,文件保存类型一致,应该就是可以的,你把数据库和表的编码都改成gb2312,然后页面编码也设置为gb2312,页面保存的编码类型也改为gb2312,试试
      

  12.   

    这样看,没有问题再这样测试一下,在原来的文件中
    echo base64_encode('男');
    贴出结果
      

  13.   

    55S3???
    这是 utf-8 编码的 男 的 base64 编码结果既然你连数据库都是 gb2312 的,那为什么程序文件要用 utf-8 编码保存呢?
    如果是要所谓的“国际化”,那么需将
    mysql_query("set names gb2312");
    改成
    mysql_query("set names utf8");set names charset 这条 SQL 指令是通知 mysql 其后的交互将用什么编码进行
    mysql 会根据字段的编码自动转换编码
      

  14.   

    无法使用 简体中文 (GB2312) 字符编码保存文件 /var/www/mysite/test3.php。所以,我全部改用UTF8做实验:
    1)
    mysql> create database mydb2;
    Query OK, 1 row affected (0.02 sec)mysql> use mydb2;
    Database changedmysql> create table userinfo(
        -> id int unsigned auto_increment primary key,
        -> username char(10),
        -> gender char(2)
        -> ) character set utf8;mysql> insert into userinfo set username = 'aaa',gender = '男';
    Query OK, 1 row affected (0.03 sec)mysql> select * from userinfo;
    +----+----------+--------+
    | id | username | gender |
    +----+----------+--------+
    |  1 | aaa      | 男     |
    +----+----------+--------+
    1 row in set (0.00 sec)2)
    新建test3.php,使用当前语系utf-8保存:
    <?php
    mysql_connect('localhost','root','');
    mysql_select_db('mydb2');
    mysql_query("set names utf-8");
    $result = mysql_query("select * from userinfo where id = 1");
    $row = mysql_fetch_array($result);
    echo base64_encode($row['gender']);
    echo base64_encode("男");
    ?>输出结果:
    Pw==55S3
      

  15.   

    mysql_query("set names utf8");在base64编码前echo $row['gender'];看是否正常。
      

  16.   

    mysql_query("set names utf8");
    echo base64_encode($row['gender']);
    echo base64_encode("男");输出结果:
    55S355S3echo ($row['gender']);
    echo ("男");输出结果:
    鐢风敺怎么办???
      

  17.   

    php文件加上:   header("Content-Type:text/html;charset=utf-8");