避免把数据写到表里中文成了乱码

本文介绍如何在PHP中使用mysqli扩展连接MySQL数据库,并设置字符集为UTF-8以避免中文乱码问题。提供了两种设置字符集的方法,并解释了相关配置变量的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    //数据库连接
    $db_con=new mysqli('localhost','root','root','regist');
    $db_con->query("SET NAMES 'utf8'");
    //我注:不加上上一句,写到库里的汉字就是乱码。
    /*这句话的写法见到了两种:
        1、$db_con=new mysqli('localhost','root','root','regist');
              $db_con->query("SET NAMES 'utf8'");
        2、$link=mysql_connect($db_host,$db_user,$db_pass)or die("不能连接到服务器".mysql_error());
               mysql_query("set names utf8");
               mysql_select_db($db_name,$link);    //选择test数据库
    */

 

下面是引用的内容

来自:http://php.net/manual/en/mysqli.query.php

hunreal at gmail dot com
13-Aug-2004 09:24
Use difference collation/character for connect, result.
You can set the collation before your query.

E.g. want to set the collation to utf8_general_ci
you can send the query "SET NAMES 'utf8'" first

<?php
$mysqli
=new mysqli ( 'localhost' , 'root' , 'password' , 'test' );
$mysqli -> query ( "SET NAMES 'utf8'" );
$q = $mysqli -> query ( "select * from test" );
while(
$r = $q -> fetch_assoc ()) {
   
print_r ( $r );
}
?>

There are many variables about character settings.
By running sql command, SHOW VARIABLES LIKE 'char%';
There are some variables control the character usage.

character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
character_set_system

Also SET NAMES can repalce with one or some settings like SET character_set_results='utf8';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值