PHP操作MySQL数据库
前言
在正式开始学习前,我们需要开启mysqli扩展,使用phpinof()你可以看到如下展示就说明开启成功:
若没有看到mysqli扩展在windows服务器下,打开php.ini文件,将php_mysqli.dll打开即可。
注意:
从PHP7开始默认不再支持mysql扩展,即不再支持mysql_*系列函数。请使用mysqli连接数据库。
mysqli即支持php5也支持php7。
创建表结构:
mysql> create table if not exists users (
-> id int(10) unsigned primary key auto_increment not null,
-> username varchar(30),
-> password varchar(100),
-> createtime varchar(40) not null,
-> createip binary(16)
-> );
Query OK, 0 rows affected (0.02 sec)
index.html 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP操作MySQL数据库</title>
</head>
<body>
<form action="connect.php" method="post">
用户名:<input type="text" name="username"><br />
密码:<input type="password" name="password"><br />
重复密码:<input type="password" name="repassword"><br />
<input type="submit" value="提交">
</form>
</body>
</html>
connect.php代码如下:
<?php
if (trim($_POST['password']) != trim($_POST['repassword'])) {
exit('两次密码不一致,请返回上一页');
}
$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$conn = mysqli_connect('localhost', 'root', '123456');
//如果有错误,存在错误号
if (mysqli_errno($conn)) {
echo mysqli_error($conn);
exit;
}
mysqli_select_db($conn, 'php');
mysqli_set_charset($conn, 'utf8');
$sql = "insert into users(username,password,createtime,createip)
values('" .$username. "','" .$password. "','" .$time. "','".$ip."')";
//echo $sql.PHP_EOL;
$result = mysqli_query($conn, $sql);
if ($result) {
echo '数据写入成功'.PHP_EOL;
} else {
echo '数据写入失败';
}
echo '当前用户插入的ID为:' . mysqli_insert_id($conn);
mysqli_close($conn);
?>
list.php代码如下:
<?php
$conn = mysqli_connect('localhost', 'root', '123456', 'php');
if (mysqli_errno($conn)) {
mysqli_error($conn);
exit;
}
mysqli_set_charset($conn, 'utf8');
$sql = "select id,username,createtime,createip from users order by id desc";
//进行降序排序
$result = mysqli_query($conn, $sql);
if ($result && mysqli_num_rows($result)) {
//查询出来的行数可以使用mysqli_num_rows。这个函数要求传入$result查询的结果变量。
//如果有结果则显示列表,如果没有结果我们产生一句提示即可。
echo '<table width="800" border="1">';
while ($row = mysqli_fetch_assoc($result)) {
//使用到的函数是mysqli_fetch_assoc,返回的会是一个关联数组。
//这个函数读取一个结果集,会向后移动一次。读取到最后没有结果的时候会返回bool值的false。因此,我们选择while来配合mysqli_fetch_assoc。
//每次循环的结果赋值给$row,$row中是关联数组。因此我在这次循环中,可以将行和列都显示出来。
echo '<tr>';
echo '<td>' . $row['username'] . '</td>';
echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>';
echo '<td>' . long2ip($row['createip']) . '</td>';
echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';
echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';
echo '</tr>';
}
echo '</table>';
} else {
echo '没有数据';
}
mysqli_close($conn);
?>
end