$con=mysql_connect("localhost","root","root");
            mysql_select_db("findbottle",$con);            $sql = "INSERT INTO find (findbottle_name,findbottle_sex,findbottle_email,
            findbottle_time,findbottle_address,findbottle_DorL,findbottle_other)   VALUES  ('$findbottle_name','$findbottle_sex','$findbottle_email',
            '$findbottle_time','$findbottle_address','$findbottle_DorL','$findbottle_other')";          $result=mysql_query($sql,$con)
               or die('Error query database');-----------------------------------------------------------------------------------------------------------------1.为什么这个函数传入数据库的中文是乱码?其他的都是正常的,
2.为什么我使用函数传入数据库之后,再改成表对象传入数据库就不行了,提示bool(false);

解决方案 »

  1.   

    1. 在链接数据库后根据编码做一个设定 mysql_query("SET NAMES GBK"); //gbk gb2312 utf8
    2.什么叫改成表对象传入?
      

  2.   


    $find =D('Find')$result=$find->add($a) //a是一个数组,和表对应.
      

  3.   

    那你要贴出你的add方法是如何写的
      

  4.   


    我用的是THINKPHP,然后再config里面定义了路径,<?php
    return array(
        /* 数据库设置 */
        'DB_TYPE' => 'mysql', // 数据库类型
        'DB_HOST' => 'localhost', // 服务器地址
        'DB_NAME' => 'findbottle', // 数据库名
        'DB_USER' => 'root', // 用户名
        'DB_PWD' => 'root', // 密码
        'DB_PORT' => 3306, // 端口    TMPL_PARSE_STRING => array(
            '__JS__' => '/FindBottle/Public/js',
            '__IMG__' => '/FindBottle/Public/images',
            '__CSS__' => '/FindBottle/Public/css',
        ),
    );
    ?>
    然后ACTION里面是这样写的,$find=D('find');$a["findbottle_name"]=$_POST['name'];
    $a["findbottle_sex"]=$_POST['sex'];
    $a["findbottle_email"]=$_POST['email'];
    $a["findbottle_time"]=$_POST['time'];
    $a["findbottle_address"]=$_POST['address'];
    $a["findbottle_DorL"]=$_POST['DorL'];
    $a["findbottle_other"]=$_POST['other'];$result=$find->add($a);$a中的值DUMP出来是没有问题的,但是ADD不进数据库,提示bool(false);求解,而且在我用函数之前是可以的,但是用过函数以后就不行了......是不是我调试函数的时候弄到了什么?
      

  5.   

    $find->add() 这个方法的代码
      

  6.   


    这不是THINKPHP内置的么...我不知道在哪里
      

  7.   


    我还有一个问题要问你,我使用mysql_系列函数的时候第一个办法可以用,存入是中文,但是我使用mysqli的时候就不行了,又变成乱码了.怎么办?
      

  8.   

    $mysqli->set_charset("utf8") ;  //插入前加上这句
      

  9.   


    Fatal error: Call to a member function set_charset() on a non-object in V:\PHPnow-1.5.6\htdocs\FindBottle\Lib\Action\IndexAction.class.php on line 34提示这个.....
      

  10.   


    $con=mysqli_connect("localhost","root","root","findbottle");  $mysqli->query("set names utf8");
      $sql = "INSERT INTO find (findbottle_name,findbottle_sex,findbottle_email,
      findbottle_time,findbottle_address,findbottle_DorL,findbottle_other) VALUES ('$findbottle_name','$findbottle_sex','$findbottle_email',
      '$findbottle_time','$findbottle_address','$findbottle_DorL','$findbottle_other')";  $result=mysqli_query($con,$sql)
      or die('Error query database');  mysqli_close($con);