php读取sql乱码,php执行sql文件乱码,不完整

我想通过php读取sql文件创建数据库并且写入一些初始的数据,于是我写了以下php代码和sql

经过1楼大神提示,代码已跑通

//读取文件内容

$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('连接数据库出错');

}

//执行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 '编号',

`username` VARCHAR(20) NOT NULL UNIQUE COMMENT '留言用户名',

`posttime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',

`bgcolor` VARCHAR(10) DEFAULT '#FFDFFF' COMMENT '背景颜色',

`content` VARCHAR(200) NOT NULL COMMENT '留言内容'

)ENGINE=INNODB CHARSET=UTF8;

-- 插入一些土味情话当初始数据

INSERT message(username,content) VALUES

('渔潅頭A。','“对不起。”“你永远都不要和我说对不起,永远都不要。”'),

('僅剩的余溫','你知道我最大的缺点是什么吗?是缺点你'),

('青春是肆无忌惮旳挥霍つ','你是哪里人?湖南人。不,是我的心上人。'),

('卖女孩的小伙柴','你的脸上有点东西,有什么?有点漂亮。'),

('爱人の头颅','到家了吗?没有,没你的地方都不算家。');

运行以后没有报错,var_dump出来的数据如下:

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 '编号',

`username` VARCHAR(20) NOT NULL UNIQUE COMMENT '留言用户名',

`posttime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',

`bgcolor` VARCHAR(10) DEFAULT '#FFDFFF' COMMENT '背景颜色',

`content` VARCHAR(200) NOT NULL COMMENT '留言内容'

)ENGINE=INNODB CHARSET=UTF8' (length=394)

3 => string '

INSERT message(username,content) VALUES

('渔潅頭A。','“对不起。”“你永远都不要和我说对不起,永远都不要。”'),

('僅剩的余溫','你知道我最大的缺点是什么吗?是缺点你'),

('青春是肆无忌惮旳挥霍つ','你是哪里人?湖南人。不,是我的心上人。'),

('卖女孩的小伙柴','你的脸上有点东西,有什么?有点漂亮。'),

('爱人の头颅','到家了吗?没有,没你的地方都不算家。')' (length=489)

4 => string '

' (length=2)

有以下两个问题,是哪里不对呢:

创建出来的message表注释是乱码

表创建出来了,但是初始数据并没有写入(INSERT语句没有问题,在mysql命令行里是可以成功的)

如果想在sql里写注释是不是会影响读取,sql里不能有回车或者换行?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值