PHP学习笔记之三 数据库基本操作
程序员文章站
2023-04-07 14:52:17
下面是在linux上登录mysql,创建数据库和创建表的过程。 yin@yin-ubuntu10:~$ mysql -u root -p enter password: w...
下面是在linux上登录mysql,创建数据库和创建表的过程。
yin@yin-ubuntu10:~$ mysql -u root -p
enter password:
welcome to the mysql monitor. commands end with ; or \g.
your mysql connection id is 360
server version: 5.1.41-3ubuntu12.1 (ubuntu)
type 'help;' or '\h' for help. type '\c' to clear the current input statement.
mysql> create database usecase;
query ok, 1 row affected (0.00 sec)
mysql> use usecase;
database changed
mysql> create table user(username varchar(20) primary key,password varchar(20) not null,createtime timestamp default current_timestamp);
query ok, 0 rows affected (0.01 sec)下面就来建立一个页面来完成新建用户的页面。首先是一个简单的表单:
<form action="db.php" method="post">
<dl>
<dt>username</dt><dd><input name="username" maxlength="20" type="text"/></dd>
<dt>password</dt><dd><input name="password" maxlength="20" type="password"/></dd>
<dt>confirm password</dt><dd><input name="confirmpassword" maxlength="20" type="password"/></dd>
</dl>
<input type="submit" name="ok" value="ok"/>
</form>
php通过$_post数组来获得通过post方法提交的表单中的数据。在php程序中,我们首先要判断是有ok字段,从而判断出该页面是首次访问,还是用户点击ok后提交的,接着判断两次密码输入是否统一。然后就可以获取到用户名和密码,插入数据库中。php连接mysql数据库一般可以利用mysql扩展或者mysqli扩展,mysqli扩展比较新一点,这里我们采用这种方式。mysqli可能需要安装配置下,不过在我的环境中是默认装好的。利用mysqli扩展操作数据库一般分为如下几步:构造mysqli对象,构造statement,绑定参数,执行,关闭。代码如下:
<?php
$match=true;
if(isset($_post["ok"])) {
$pwd=$_post["password"];
$pwdconfirm=$_post["confirmpassword"];
$match=($pwd==$pwdconfirm);
$conn=new mysqli("localhost","root","123","usecase");
if (mysqli_connect_errno()) {
printf("connect failed: %s\n", mysqli_connect_error());
exit();
}
$query="insert into user(username,password) values(?,?)";
$stmt=$conn->stmt_init();
$stmt->prepare($query);
$stmt->bind_param('ss',$name,$pwd);
$name=$_post["username"];
$pwd=$_post["password"];
$stmt->execute();
if($stmt->errno==0) {
$success=true;
}else {
$success=false;
}
$stmt->close();
$conn->close();
}
?>
其中bind_param方法需要稍微解释下,第一个参数的含义是参数类型。每个字符对应一个参数,s表示字符串,i表示整数,d表示浮点数,b表示blob。最后,再为这个页面添加一点提示信息:
<?php
if(!$match) { ?>
<p>password and confirm password must match.</p>
<?php
}
?>
<?php
if(isset($success)) {
if($success) {
echo '<p>user created successfully!';
}elseif($sucess==false) {
echo '<p>user name existed.';
}
}
?>
再接下来,我们编写一个用户列表页面。
<table>
<tr><th>user name</th><th>createtime</th><th>action</th>
</tr>
<?php
include 'conn.php';
$query="select * from user;";
$res=$mysql->query($query);
while($row=$res->fetch_array()) {
?>
<tr>
<td><?= $row['username'] ?></td>
<td><?= date('y-m-d',strtotime($row['createtime']))?> </td>
<td><a href="useredit.php?action=update&id=<?= $row['username'] ?>">edit</a>
<a href="action=delete&id=<?= $row['username'] ?>">delete</a>
</td>
</tr>
<?php
}
$res->close();
$mysql->close();
?>
</table>
yin@yin-ubuntu10:~$ mysql -u root -p
enter password:
welcome to the mysql monitor. commands end with ; or \g.
your mysql connection id is 360
server version: 5.1.41-3ubuntu12.1 (ubuntu)
type 'help;' or '\h' for help. type '\c' to clear the current input statement.
mysql> create database usecase;
query ok, 1 row affected (0.00 sec)
mysql> use usecase;
database changed
mysql> create table user(username varchar(20) primary key,password varchar(20) not null,createtime timestamp default current_timestamp);
query ok, 0 rows affected (0.01 sec)下面就来建立一个页面来完成新建用户的页面。首先是一个简单的表单:
复制代码 代码如下:
<form action="db.php" method="post">
<dl>
<dt>username</dt><dd><input name="username" maxlength="20" type="text"/></dd>
<dt>password</dt><dd><input name="password" maxlength="20" type="password"/></dd>
<dt>confirm password</dt><dd><input name="confirmpassword" maxlength="20" type="password"/></dd>
</dl>
<input type="submit" name="ok" value="ok"/>
</form>
php通过$_post数组来获得通过post方法提交的表单中的数据。在php程序中,我们首先要判断是有ok字段,从而判断出该页面是首次访问,还是用户点击ok后提交的,接着判断两次密码输入是否统一。然后就可以获取到用户名和密码,插入数据库中。php连接mysql数据库一般可以利用mysql扩展或者mysqli扩展,mysqli扩展比较新一点,这里我们采用这种方式。mysqli可能需要安装配置下,不过在我的环境中是默认装好的。利用mysqli扩展操作数据库一般分为如下几步:构造mysqli对象,构造statement,绑定参数,执行,关闭。代码如下:
复制代码 代码如下:
<?php
$match=true;
if(isset($_post["ok"])) {
$pwd=$_post["password"];
$pwdconfirm=$_post["confirmpassword"];
$match=($pwd==$pwdconfirm);
$conn=new mysqli("localhost","root","123","usecase");
if (mysqli_connect_errno()) {
printf("connect failed: %s\n", mysqli_connect_error());
exit();
}
$query="insert into user(username,password) values(?,?)";
$stmt=$conn->stmt_init();
$stmt->prepare($query);
$stmt->bind_param('ss',$name,$pwd);
$name=$_post["username"];
$pwd=$_post["password"];
$stmt->execute();
if($stmt->errno==0) {
$success=true;
}else {
$success=false;
}
$stmt->close();
$conn->close();
}
?>
其中bind_param方法需要稍微解释下,第一个参数的含义是参数类型。每个字符对应一个参数,s表示字符串,i表示整数,d表示浮点数,b表示blob。最后,再为这个页面添加一点提示信息:
复制代码 代码如下:
<?php
if(!$match) { ?>
<p>password and confirm password must match.</p>
<?php
}
?>
<?php
if(isset($success)) {
if($success) {
echo '<p>user created successfully!';
}elseif($sucess==false) {
echo '<p>user name existed.';
}
}
?>
再接下来,我们编写一个用户列表页面。
复制代码 代码如下:
<table>
<tr><th>user name</th><th>createtime</th><th>action</th>
</tr>
<?php
include 'conn.php';
$query="select * from user;";
$res=$mysql->query($query);
while($row=$res->fetch_array()) {
?>
<tr>
<td><?= $row['username'] ?></td>
<td><?= date('y-m-d',strtotime($row['createtime']))?> </td>
<td><a href="useredit.php?action=update&id=<?= $row['username'] ?>">edit</a>
<a href="action=delete&id=<?= $row['username'] ?>">delete</a>
</td>
</tr>
<?php
}
$res->close();
$mysql->close();
?>
</table>
上一篇: 古代如果银票丢失了会怎么样的 古人的钱会不会丢失呢
下一篇: 揭秘:太子朱标到底是怎么死的?