在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ php執(zhí)行sql文件亂碼,不完整

php執(zhí)行sql文件亂碼,不完整

我想通過(guò)php讀取sql文件創(chuàng)建數(shù)據(jù)庫(kù)并且寫(xiě)入一些初始的數(shù)據(jù),于是我寫(xiě)了以下php代碼和sql
經(jīng)過(guò)1樓大神提示,代碼已跑通
<?php
//讀取文件內(nèi)容
$sql = file_get_contents('sql/start.sql');

$arr = explode(';', $sql);

var_dump($arr);

$conn = mysqli_connect('localhost','root','');

mysqli_query($conn,'set names utf8');

if (!$conn) {
    exit('連接數(shù)據(jù)庫(kù)出錯(cuò)');
}
//執(zhí)行sql語(yǔ)句
foreach ($arr as $value) {
  //var_dump(str_replace("\n",'',$value));
  mysqli_query($conn,$value);
}
//exit();

mysqli_close($conn);
CREATE DATABASE IF NOT EXISTS wishwall DEFAULT CHARACTER SET 'UTF8';

USE wishwall;

CREATE TABLE IF NOT EXISTS message (
  `id` INT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號(hào)',
  `username` VARCHAR(20) NOT NULL UNIQUE COMMENT '留言用戶名',
  `posttime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '發(fā)布時(shí)間',
  `bgcolor` VARCHAR(10) DEFAULT '#FFDFFF' COMMENT '背景顏色',
  `content` VARCHAR(200) NOT NULL COMMENT '留言內(nèi)容'
)ENGINE=INNODB CHARSET=UTF8;

-- 插入一些土味情話當(dāng)初始數(shù)據(jù) 
INSERT message(username,content) VALUES
('漁潅頭A。','“對(duì)不起。”“你永遠(yuǎn)都不要和我說(shuō)對(duì)不起,永遠(yuǎn)都不要?!?),
('僅剩的余溫','你知道我最大的缺點(diǎn)是什么嗎?是缺點(diǎn)你'),
('青春是肆無(wú)忌憚旳揮霍つ','你是哪里人?湖南人。不,是我的心上人。'),
('賣女孩的小伙柴','你的臉上有點(diǎn)東西,有什么?有點(diǎn)漂亮。'),
('愛(ài)人の頭顱','到家了嗎?沒(méi)有,沒(méi)你的地方都不算家。');
運(yùn)行以后沒(méi)有報(bào)錯(cuò),var_dump出來(lái)的數(shù)據(jù)如下:
array (size=5)
  0 => string 'CREATE DATABASE IF NOT EXISTS wishwall DEFAULT CHARACTER SET 'UTF8'' (length=67)
  1 => string '

USE wishwall' (length=16)
  2 => string '

CREATE TABLE IF NOT EXISTS message (
  `id` INT UNSIGNED AUTO_INCREMENT KEY COMMENT '編號(hào)',
  `username` VARCHAR(20) NOT NULL UNIQUE COMMENT '留言用戶名',
  `posttime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '發(fā)布時(shí)間',
  `bgcolor` VARCHAR(10) DEFAULT '#FFDFFF' COMMENT '背景顏色',
  `content` VARCHAR(200) NOT NULL COMMENT '留言內(nèi)容'
)ENGINE=INNODB CHARSET=UTF8' (length=394)
  3 => string '

INSERT message(username,content) VALUES
('漁潅頭A。','“對(duì)不起?!薄澳阌肋h(yuǎn)都不要和我說(shuō)對(duì)不起,永遠(yuǎn)都不要?!?),
('僅剩的余溫','你知道我最大的缺點(diǎn)是什么嗎?是缺點(diǎn)你'),
('青春是肆無(wú)忌憚旳揮霍つ','你是哪里人?湖南人。不,是我的心上人。'),
('賣女孩的小伙柴','你的臉上有點(diǎn)東西,有什么?有點(diǎn)漂亮。'),
('愛(ài)人の頭顱','到家了嗎?沒(méi)有,沒(méi)你的地方都不算家。')' (length=489)
  4 => string '
' (length=2)

有以下兩個(gè)問(wèn)題,是哪里不對(duì)呢:

  • 創(chuàng)建出來(lái)的message表注釋是亂碼
  • 表創(chuàng)建出來(lái)了,但是初始數(shù)據(jù)并沒(méi)有寫(xiě)入(INSERT語(yǔ)句沒(méi)有問(wèn)題,在mysql命令行里是可以成功的)
  • 如果想在sql里寫(xiě)注釋是不是會(huì)影響讀取,sql里不能有回車或者換行?
回答
編輯回答
來(lái)守候

關(guān)于亂碼:
$conn = mysqli_connect('localhost','root',''); 下面添加:

mysqli_query($conn,'set names utf8');

就可以了,加注釋不影響讀取,測(cè)試代碼可以執(zhí)行:
圖片描述

2017年7月22日 11:14