pdo 寫入到數(shù)據(jù)庫(kù)的內(nèi)容為中文的時(shí)候?qū)懭雭y碼
問題描述
<?phpif(empty($_POST['phone'])){ //這個(gè)為中文的時(shí)候 數(shù)據(jù)庫(kù)亂碼return_json(1,'手機(jī)號(hào)不能為空'); }if(empty($_POST['pwd'])){return_json(2,'密碼不能為空');}$phone = find('php_user','*','phone='.$_POST['phone']);if($phone){return_json(3,'手機(jī)號(hào)已存在');}$arr = array('phone' => $_POST['phone'],'pwd' => md5($_POST['pwd']),'add_time' => time(),'nickname' => isset($_POST['nickname']) ? $_POST['nickname'] : $_POST['phone'],'sex' => isset($_POST['sex']) ? $_POST['sex'] : 0,'avatar' => isset($_POST['avatar']) ? $_POST['avatar'] : '');$add = insert('php_user',$arr);return_json(0,'注冊(cè)成功');function connect(){ $db = array('charset' => 'utf8','port' => 3306, 'type' => 'mysql','host' => '127.0.0.1', 'user' => 'hao2', 'pass' => 'hao3', 'name' => 'hao1' ); $dsn = "{$db['type']}:host={$db['host']}; dbname={$db['name']}; charset={$db['charset']}; port={$db['port']}" try {//實(shí)例化PDO類,創(chuàng)建PDO對(duì)象$pdo = new PDO($dsn,$db['user'],$db['pass']); } catch (PDOException $e) {die('數(shù)據(jù)庫(kù)錯(cuò)誤:'.$e->getMessage()); } return $pdo;}function insert($table,$data=[]){ //連接pdo $pdo = connect(); //創(chuàng)建SQL語句 $sql = "INSERT INTO {$table} SET "; //組裝插入語句 if(is_array($data)){foreach ($data as $k=>$v) { $sql .= $k.'="'.$v.'", ';} }else{return false; } //去掉尾部逗號(hào),并添加分號(hào)結(jié)束 $sql = rtrim(trim($sql),',').';'; //創(chuàng)建PDO預(yù)處理對(duì)象 $stmt = $pdo->prepare($sql); //執(zhí)行新增操作 if($stmt->execute()){if($stmt->rowCount()>0){ return true;} } else {return false; }}
問題解答
回答1:看看你數(shù)據(jù)庫(kù)的編碼方式和你php中的編碼方式
