PHP查询mysql,中文数据,通过不同方式添加的相同数据竟然显示不同解决方案
PHP查询mysql,中文数据,通过不同方式添加的相同数据竟然显示不同
hi,
我先说下我的情况。php的新手。
----现象
输出的页面中,我已经添加了,我也在查询mysql的时候,添加了
mysql_query("set character set utf8");
mysql_query("SET NAMES 'UTF8'");
有的中文可以显示,有的不能。
----乱码显示的过程和代码
我的phpmyadmin中数据库和text字段,都是用 utf8_unicode_ci进行设置。
我手动通过phpmyadmin在数据库添加的中文,然后直接执行
mysql_query("set character set utf8");
mysql_query("SET NAMES 'UTF8'");
$rs = $db->query("SELECT * FROM book");
显示出乱码。
----正常显示的代码和意外的结果
mysql_query("set character set utf8");
mysql_query("SET NAMES 'UTF8'");
$rs2 =$db->exec("INSERT INTO `lalabook`.`book` (`bookname`, `bookdes`) VALUES ('小兵', '兵小')");
$rs = $db->query("SELECT * FROM book");
可以正常的显示出我插入的数据。但是有个问题是,我在通过phpmyadmin查看我插入的数据时,显示的时乱码。
----
所以我不清楚这个时什么原因造成的,是不是我以后插入数据都要通过代码。不能再用phpmyadmin插入了
------解决方案--------------------
在phpmyadmin 内直接执行 SET NAMES 'UTF8' 然后再SELECT ....出来的结果呢?
phpmyadmin也是需要设置链接编码的.
------解决方案--------------------
是不是文件本身的编码有问题
------解决方案--------------------
是虚拟主机吧, 一切都是正常的.
用户提交Utf8,php操作入库,出库就可以了。
phpadmin乱码是因为mysql_server编码一般服务商都是latin的,但服务商一般都保证connenct/client/result是utf8的,也就是数据出入的编码是utf8,存储的时候是latin,所以去phpadmin看php操作的会乱码。
另外,在phpadmin里执行sql插入的数据,在php读取的时候会乱码,这个问题是很神奇的,我也没看phpmyadmin页面是什么编码。
一句话:设置库,表,列的编码全部是utf8-unicode-ci,之后数据的出入库都采用utf8编码,不要在意phpadmin查数据时候乱码,不会影响用户即可。
------解决方案--------------------
编码常用的是utf8-general-ci
不只是表要通一,要统一的总共有四处
一是:数据库类型,其中包括,数据库,表,字段三处都要统一,可以检查一下
二是:文件的编码类型,你若用dw或editplus可以查看页面编码,不同需修改
三是:访问数据库时的设置既set NAMES utf8;
四是:浏览器显示方式,既
这四处必需统一,否则可能会出现问题

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam pangkalan data MySQL, hubungan antara pengguna dan pangkalan data ditakrifkan oleh kebenaran dan jadual. Pengguna mempunyai nama pengguna dan kata laluan untuk mengakses pangkalan data. Kebenaran diberikan melalui perintah geran, sementara jadual dibuat oleh perintah membuat jadual. Untuk mewujudkan hubungan antara pengguna dan pangkalan data, anda perlu membuat pangkalan data, membuat pengguna, dan kemudian memberikan kebenaran.

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Penyederhanaan Integrasi Data: AmazonRDSMYSQL dan Integrasi Data Integrasi Zero ETL Redshift adalah di tengah-tengah organisasi yang didorong oleh data. Proses tradisional ETL (ekstrak, menukar, beban) adalah kompleks dan memakan masa, terutamanya apabila mengintegrasikan pangkalan data (seperti Amazonrdsmysql) dengan gudang data (seperti redshift). Walau bagaimanapun, AWS menyediakan penyelesaian integrasi ETL sifar yang telah mengubah keadaan ini sepenuhnya, menyediakan penyelesaian yang mudah, hampir-sebenar untuk penghijrahan data dari RDSMYSQL ke redshift. Artikel ini akan menyelam ke integrasi RDSMYSQL Zero ETL dengan redshift, menjelaskan bagaimana ia berfungsi dan kelebihan yang dibawa kepada jurutera dan pemaju data.

Untuk mengisi nama pengguna dan kata laluan MySQL: 1. Tentukan nama pengguna dan kata laluan; 2. Sambungkan ke pangkalan data; 3. Gunakan nama pengguna dan kata laluan untuk melaksanakan pertanyaan dan arahan.

1. Gunakan indeks yang betul untuk mempercepatkan pengambilan data dengan mengurangkan jumlah data yang diimbas memilih*frommployeesWherElast_name = 'Smith'; Jika anda melihat lajur jadual beberapa kali, buat indeks untuk lajur tersebut. Jika anda atau aplikasi anda memerlukan data dari pelbagai lajur mengikut kriteria, buat indeks komposit 2. Elakkan pilih * Hanya lajur yang diperlukan, jika anda memilih semua lajur yang tidak diingini, ini hanya akan memakan lebih banyak pelayan dan menyebabkan pelayan melambatkan pada masa yang tinggi atau kekerapan misalnya, jadual anda

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

Klausa SQLLIMIT: Kawal bilangan baris dalam hasil pertanyaan. Klausa had dalam SQL digunakan untuk mengehadkan bilangan baris yang dikembalikan oleh pertanyaan. Ini sangat berguna apabila memproses set data yang besar, paparan paginat dan data ujian, dan dapat meningkatkan kecekapan pertanyaan dengan berkesan. Sintaks Asas Sintaks: SelectColumn1, Column2, ... FROMTABLE_NAMELIMITNUMBER_OF_ROWS; Number_of_rows: Tentukan bilangan baris yang dikembalikan. Sintaks dengan Offset: SelectColumn1, Column2, ... Fromtable_namelimitoffset, Number_of_rows; Offset: Langkau

Lihat pangkalan data MySQL dengan arahan berikut: Sambungkan ke pelayan: MySQL -U Pengguna Nama -P Kata Laluan Run Show pangkalan data; Perintah untuk mendapatkan semua pangkalan data yang sedia ada Pilih pangkalan data: Gunakan nama pangkalan data; Lihat Jadual: Tunjukkan Jadual; Lihat Struktur Jadual: Huraikan nama jadual; Lihat data: pilih * dari nama jadual;
