首页 > 技术文章 > PHP 链接数据库1(连接数据库&简单的登录注册)

ordinaryk 2016-12-18 11:45 原文

对 解析变量的理解

数据库的名称和表的名称不能重复

从结果中取出的数据   都是以数组的形式取出的

1.PHP查询数据库中的某条信息

//PHP链接数据库
/*1.造链接对象 IP地址  用户名  密码  数据库名称--*/
$db=new MySQLi("localhost","root","123","zhousan");
//判断链接是否出错
mysqli_connect_error()?die("链接失败"):"链接成功";//三步运算符
//准备sql语句
$sql="select*from fruit";
//4执行sql 语句 返回结果集对象
$result=$db->query($sql);
//取出所有数据
$rr=$result->fetch_all();//返回所有数据 并且以二维数组的形式存在
var_dump($rr);//也可以用遍历集合(嵌套)  或者循环取出  数据内容

2.通过PHP在数据库中添加   信息

$obj=new mysqli("localhost","root","123","zhousan");
mysqli_connect_error()?die("错误"): print "成功";
$tt="insert into fruit values('w','f',2.1,'sd',2,'sd')";//insert 语句  如果检查错误可以复制到 mysqle服务器下面 看是否运行
$rt=$obj->query($tt);
var_dump($rt);// 返回 bool 值  true 或 false
//$yy=$rt->fetch_all(); 这条语句 不能被执行 执行会被报错   

  3.从结果集里面取数据

$attr = $result->fetch_all(); //返回所有数据,并且以二维数组的方式存在
三个可选参数:MYSQLI_ASSOC返回关联数组,MYSQLI_NUM返回索引数组,MYSQLI_BOTH返回索引和关联都有的,使用的时候不需要加双引号
$attr = $result->fetch_array();//返回当前这条数据,返回的是一维数组,默认是索引关联都有
$attr = $result->fetch_assoc(); //返回当前这条数据,返回的是一维关联数组
$attr = $result->fetch_object(); //返回当前这条数据的对象
$attr = $result->fetch_row(); //返回当前这条数据,返回的是索引数组

  4.遍历集合取数据(注意while里面的数据)

$connect1=new mysqli("localhost","root","123","zhousan");
$langu="select*from fruit";
$gg=$connect1->query($langu);
while($attr = $gg->fetch_row())
{
	echo "<div>{$attr[0]}--{$attr[1]}--{$attr[2]}--{$attr[3]}--{$attr[4]}</div>";
}

  

 3.登录界面  分别建立(表格  登录界面  提交界面)

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 </head>
 7 
 8 <body>
 9 <h1>登录页面</h1>
10 <form action="./dengluchuli.php" method="post">
11     <div>用户名:<input type="text" name="uid" /></div>
12     <div>密码:<input type="password" name="pwd" /></div>
13     <div><input type="submit" value="登录" /></div>
14 </form>
15 </body>
16 </html>
登录界面
 1 <?php
 2 $uid = $_POST["uid"];
 3 $pwd = $_POST["pwd"];
 4 
 5 //1.造连接对象
 6 $db = new MySQLi("localhost","root","123","mydb");
 7 
 8 //2.写SQL语句
 9 $sql = "select password from login where username='{$uid}'";
10 
11 //3.执行
12 $reslut = $db->query($sql);
13 
14 //4.取数据
15 $attr = $reslut->fetch_row();
16 
17 if($attr[0]==$pwd && !empty($pwd))
18 {
19     echo "登录成功!";
20 }
21 else
22 {
23     echo "登录失败!";
24 }
25 
26 //SQL注入攻击
27 //1.过滤用户的输入
28 //2.使用预处理语句
29 //3.写代码的时候尽量避免
dengluchuli.php

4.注册(注册界面 提交界面  表格)  注意不为空

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 </head>
 7 
 8 <body>
 9 
10 <h1>注册页面</h1>
11 
12 <form action="./zhucechuli.php" method="post">
13 
14     <div>用户名:<input type="text" name="uid" /></div>
15     <div>密码:<input type="text" name="pwd" /></div>
16 
17     <div>姓名:<input type="text" name="name" /></div>
18     <div><input type="submit" value="注册" /></div>
19     
20 </form>
21 </body>
22 </html>
注册界面
 1 <?php
 2 
 3 $uid = $_POST["uid"];
 4 $pwd = $_POST["pwd"];
 5 $name = $_POST["name"];
 6 
 7 //1.造连接对象
 8 $db = new MySQLi("localhost","root","123","mydb");
 9 
10 //2.写SQL语句
11 $sql = "insert into login values('{$uid}','{$name}','{$pwd}',0)";
12 
13 //3.执行
14 $r = $db->query($sql);
15 
16 if($r)
17 {
18     echo "注册成功!";
19 }
20 else
21 {
22     echo "注册失败!";
23 }
zhucechuli.php

 

推荐阅读