日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

怎么设置php.ini允许sql语句插入空值到mysql里_php读取.sql文件,写入mysql,navicat显示乱码,编码设置...

發布時間:2024/7/23 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么设置php.ini允许sql语句插入空值到mysql里_php读取.sql文件,写入mysql,navicat显示乱码,编码设置... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

案例:

php文件:install.php

--------編碼:php保存文件的編碼、php header編碼、php程序的默認編碼、php寫入數據庫的編碼

php讀取的sql代碼文件:php.sql

--------編碼:sql保存文件的編碼

mysql數據庫:test1

--------編碼:mysql數據庫程序的默認編碼、test1的字符集編碼、排序規則,表里邊每個字段的字符集編碼和排序規則

navicat軟件

--------編碼:建立連接時的編碼

install.php文件的源代碼:<?php

header("Content-type: text/html; charset=gb2312");

//讀取文件內容

$_sql = file_get_contents('phplyb.sql');

$_arr = explode(';', $_sql);

$_mysqli = new mysqli('localhost','root','11111111');

if (mysqli_connect_errno()) {

exit('連接數據庫出錯');

}

//執行sql語句

foreach ($_arr as $_value) {

$_mysqli->query("SET NAMES 'gb2312'");

$_mysqli->query("CREATE DATABASE IF NOT EXISTS test1 DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;");

$_mysqli->query("USE test1");

$_mysqli->query($_value.';');

}

$_mysqli->close();

$_mysqli = null;

?>

問題:案例中那么多的編碼,一不注意就碰到亂碼問題,到底該怎么設置?

分析:

親測。實際上,其他的編碼都不重要,mysql、php、navicat以及php header的語言編碼都可以默認。主要是保持這幾個編碼一致:sql保存文件的編碼、php文件中兩個mysqli->query語句中的編碼和排序規則、數據庫表里邊每個字段的字符集編碼和排序規則,都是utf8或者都是gb2312。

另外,如果需要指定mysql數據庫程序的默認編碼,可以在my.ini里添加如下參數:[mysql]

default-character-set=utf8

==========================================

[mysqld]

default-character-set=utf8

箭頭所指的地方確保為utf8(注意不是utf-8),navicat 里的使用的是mysql字符集(此時不用再選擇utf-8編碼), 問題才得以解決!

總結

以上是生活随笔為你收集整理的怎么设置php.ini允许sql语句插入空值到mysql里_php读取.sql文件,写入mysql,navicat显示乱码,编码设置...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。