php连接mysql数据库

12 篇文章 0 订阅

因为7.0后就不能用mysql_开头的命令了,所以改用mysqli_

首先使用mysqli_connect连接数据库,语法格式如下

mysqli_connect(连接的ip或主机名, 用户名, 密码, 使用的数据库, 连接的端口, socket信息);

这些参数都是可空的,一般只用到前五个,即除了socket信息以外。

因为上一节我把数据库删了,所以数据库参数那栏填空(''),等连上了创建一个。
而使用的数据库是在本地(127.0.0.1),所以端口参数可填空(即省略,默认为3306)。

所以

// 使用一个变量存储数据库连接
$con = mysqli_connect('127.0.0.1', 'root', 'root');
// 如果连接成功,则返回连接句柄,否则返回一个空变量
if($con) {
	echo '连接成功' . PHP_EOL;
} else {
	// 这里的设定是,失败也就不执行后面的代码,所以用die
	// die的作用是输出括号内的文本,并结束运行
	die('连接失败:' . mysqli_error($con));
}

然后再创建数据库,
php中没有直接用于创建数据库的函数,也可能是我孤陋寡闻,只能借助用于执行sql语句的mysqli_query函数,语法格式很简单,就两个参数,连接句柄和sql语句,其实还有一个参数查询模式,但是目前不会用上。

// 续上
// 创建一个名为test_db的数据库
$sql = 'create database test_db';
$ret = mysqli_query($con, $sql);
if(!$ret) {
    die('数据库创建失败:' . mysqli_error($con));
}
echo '数据库创建成功' . PHP_EOL;

读取数据前,需要使用mysqli_select_db函数选择需要该数据库:
普通情况下也可以在使用mysqli_connect函数时就选择数据库

mysqli_select_db($con, 'test_db');

因为是个空数据库,做不了什么查询,所以先手动创建一个表

// 创建一个user表,有uid和name两个字段
$sql = 'create table user (
	uid int primary key auto_increment,
	name varchar(20) null
);';
$ret = mysqli_query($con, $sql);
if(!$ret) {
    die('表创建失败:' . mysqli_error($con));
}
echo '表创建成功' . PHP_EOL;

然后插入五条数据,这里重新创建一个php脚本

// 填入第四个参数时,会默认选择操作该数据库
$con = mysqli_connect('127.0.0.1', 'root', 'root', 'test_db');
// 先创建一个取随机文本的函数
function randomKeys($length = 3) {
    $key = '';
    $pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    for($i = 0; $i < $length; $i++)
        $key .= $pattern{ mt_rand(0, strlen($pattern) - 1) };
    return $key;
}
// 然后插入5次记录
$sql = 'insert into user (name) values (\'' . randomKeys() . '\')';
for($i = 1; $i < 5; ++$i) {
    $sql .= ", ('". randomKeys() ."')";
}
$sql .= ';';
$ret = mysqli_query($con, $sql);
if(!$ret) {
    die('数据插入失败:' . mysqli_error($con));
}
echo '数据插入成功' . PHP_EOL;

本来想用五次insert,可是Query好像不支持这种操作(具体为啥也没认真探究)
然后查询数据

$sql = 'select * from user';
$ret = mysqli_query($con, $sql);
if(!$ret) {
    die('无法读取数据: ' . mysqli_error($con));
}
while($row = mysqli_fetch_array($ret, MYSQLI_ASSOC)) {
    echo "uid: {$row['uid']}, ".
        "name: {$row['name']}\n";
}

输出如下:

数据插入成功
uid: 1, name: ynG
uid: 2, name: wqu
uid: 3, name: T4p
uid: 4, name: xaW
uid: 5, name: yu0

最后记得关闭连接

mysqli_close($con);

其他(删、改)就不写了,都是用mysqli_query操作的。

参考资料:
[1] MySQL 创建数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值