我想通過php讀取sql文件創(chuàng)建數(shù)據(jù)庫并且寫入一些初始的數(shù)據(jù),于是我寫了以下php代碼和sql經(jīng)過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ù)庫出錯(cuò)');
}
//執(zhí)行sql語句
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ì)不起?!薄澳阌肋h(yuǎn)都不要和我說對(duì)不起,永遠(yuǎn)都不要?!?),
('僅剩的余溫','你知道我最大的缺點(diǎn)是什么嗎?是缺點(diǎn)你'),
('青春是肆無忌憚旳揮霍つ','你是哪里人?湖南人。不,是我的心上人。'),
('賣女孩的小伙柴','你的臉上有點(diǎn)東西,有什么?有點(diǎn)漂亮。'),
('愛人の頭顱','到家了嗎?沒有,沒你的地方都不算家。');
運(yùn)行以后沒有報(bào)錯(cuò),var_dump出來的數(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)都不要和我說對(duì)不起,永遠(yuǎn)都不要。”'),
('僅剩的余溫','你知道我最大的缺點(diǎn)是什么嗎?是缺點(diǎn)你'),
('青春是肆無忌憚旳揮霍つ','你是哪里人?湖南人。不,是我的心上人。'),
('賣女孩的小伙柴','你的臉上有點(diǎn)東西,有什么?有點(diǎn)漂亮。'),
('愛人の頭顱','到家了嗎?沒有,沒你的地方都不算家。')' (length=489)
4 => string '
' (length=2)
有以下兩個(gè)問題,是哪里不對(duì)呢:
創(chuàng)建出來的message表注釋是亂碼
表創(chuàng)建出來了,但是初始數(shù)據(jù)并沒有寫入(INSERT語句沒有問題,在mysql命令行里是可以成功的)
如果想在sql里寫注釋是不是會(huì)影響讀取,sql里不能有回車或者換行?
1 回答

寶慕林4294392
TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
關(guān)于亂碼:
在 $conn = mysqli_connect('localhost','root','');
下面添加:
mysqli_query($conn,'set names utf8');
就可以了,加注釋不影響讀取,測(cè)試代碼可以執(zhí)行:
- 1 回答
- 0 關(guān)注
- 412 瀏覽
添加回答
舉報(bào)
0/150
提交
取消