1.过滤数据

$search = addslashes(trim($_POST['search']));

2.建立数据库连接

对象风格: @ $db = new mysqli('localhost','root','root','bookrama');
过程风格: @$db = mysqli_connect('localhost','root','root','bookrama' );

3.检查连接情况

if($db->connect_errno){//if(mysqli_connect_errno($db)){}
     echo "Error:Could not connect to data"
}

4.对数据库进行SQL操作

$query = “SQL语句”;
$result = $db->query($query); //$result = mysqli_query($db,$query);

5.返回查询结果

$num_results = $result->num_rows; // $num_results =mysqli_num_rows($result);    
//返回结果的行数;
for($i =0;$i<$num_result;$i++){
     $row = $result->fetch_assoc();  //将结果装载到一个关联数组;
     echo $row['字段名'];
     echo $row['字段名'];
(1)读取操作的行数:
select:mysqli_num_rows( )//$result->num_rows;
insert、delete、update:mysqli_affected_rows( )//$db->affected_rows;

(2)返回query的select结果:
①mysqli_fetch_assoc():将一行结果返回到一个关联数组;
 代码:$row = mysqli_fetch_assoc();
      $row['name'];
②mysqli_fetch_row():将一行结果返回到一个数字数组;
 代码:$row = mysqli_fetch_assoc();
      $row[0];
③mysqli_fetch_obejct():件一行结果返回到一个对象中,对字段的调用通过对该对象的调用来说实现;
 代码:$row = mysqli_fetch_assoc();
      $nameSelect = $row->$name;

6.断开数据库

$result -> free()  //mysqli_free($result)
$db -> close()    // mysqli_close($db)
一般脚本执行完后,数据库会自动断开连接;
//PHP访问MaySQL数据库的代码:
<?php
/* 使用MySQL来改进原有的身份验证机制,将用户名和密码(以SHA-1哈希算法1加密)数据储存在MySQL数据库中*/
$name = $_POST['name'];
$password = $_POST['password'];if(!isset($name) || !isset($password)){
?><h1>Please Log In</h1><p>This page is secret</p><form method="post" action="secretdb.php"><p>UseraName:<input type="text" name="name" /></p><p>Password:<input type="password" name="password" /></p><p><input type="submit" name="submit" value="Log In" /></p></form><?php
}else{//连接mysql数据库,并测试连接情况$db = mysqli_connect("localhost","webauth","webauth");   if(!$db){                                  #/if(mysqli_connect_error($db)){echo "Cannot connect to database.";exit;}//寻找需要的数据库auth$selected = mysqli_select_db($db,"auth");if(!$selected){echo "Cannot select database.";exit;}
或者:$db = mysqli_connect("localhost","webauth","webauth","auth");   if(mysqli_connect_eror($db)){                         echo "Cannot connect to database.";exit;}//对auth数据库进行查询操作,使用count()函数对查询到的结果进行计数$query = "select count(*) from authorized_userswhere name = '".$name."' and password = '".$password."'  "; $result = mysqli_query($db,$query);if(!$result){echo "Cannot run away";exit;}$row = mysqli_fetch_row($result);   //将查询结果包装为一个数组$count = $row[0];if($count>0){echo "<h1>Here it is!</h1><p>I bey you are glad you can see this sercet page</p>";}else{echo "<h1>Go Away!</h1><p>You are not authorized to use this source</p>";}//断开数据库连接mysqli_free_result($result);mysqli_close($db);}
?>


7. 预定义模板 prepared station

作用:在执行大量具有不同数据的相同查询时,可以提高执行效率,也可以保护查询语句不受SQL注入(injection-style)的攻击;
①insert/update/delete
面向对象风格:
$query = "insert into books values( ? , ? , ? )";   //生成query预处理模板,使用?代替具体记录值
$stmt = $db->prepare($query);                  //对$db数据库对象创建$stmt预处理任务
$stmt->bind_param("sss",$isbn,$author,$price);     //修改$stmt预处理任务的模板引用字段地址
$stmt->execute( );              //执行预处理任务
//提前声明创建$isbn,$author,$price变量;可以通过修改这些变量的值,重复使用模板;
change $isbn,$author,$price;
$stmt->execute();
$stmt->close();
面向过程风格:
$query = "insert into books values( ? , ? , ? )";  
$stmt = mysqli_stmt_prepare($db,$query)
mysqli_stmt_bind_param($stmt,"sssd",$isbn,$author,$price);
mysqli_stmt_execute($stmt);
※mysqli_bind_param(格式,参数...):s-字符串,d-双精度浮点数,i-整数,b-blob值
mysqli_execute($stmt):执行改预定义模板
②select
面向对象
$query = "select from books";    //创建模板SQL命令
$stmt = $db->prepare($query);      //对数据库对象绑定预处理模板的执行任务类
$stmt->bind_result($A,$B,$C);      //修改预处理任务的模板引用字段(绑定结果)
$stmt->excute();                   //执行预处理任务
while($stmt->fetch()){          //循环输出结果
     echo $A.$B.$C;
}
面向过程:
$query = "select from books";
$stmt =mysqli_stmt_prepare($db,$query);
mysqli_stmt_bind_param($stmt ,$A,$B,$C);
mysqli_stmt_execute($stmt);

使用PHP从Web访问MySQL数据库相关推荐

  1. 使用php从网络访问mysql数据库,使用PHP从web访问mysql数据库

    一. web数据库构架的工作原理 1. 用户由浏览器发出HTTP请求,请求特定的web页面. 2. web服务器接受接收到对特定页面的请求,检索相应文件,并将其传递给php引擎处理. 3. php引擎 ...

  2. Java web访问MySql数据库分页查询

    有时候我们查询数据库表时,但是很多时候表中的记录很多,需要显示出来的话怎么办?这时可以使用分页的方法,就是指定从数据库表的什么位置开始查询显示,以及指定显示的记录数目. Mysql数据库提供了limi ...

  3. ashx连接mysql_对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结

    基本对比 使用方式 使用场合 优缺点 是否需要安装 需要的dll网址 引用方式 程序内引用 程序初期确定使用MySql,前期添加引用 大多数情况下使用在类文件内,多数使用于aspx,ashx等带有后置 ...

  4. android与mysql数据库同步_android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?...

    通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...

  5. SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spri ...

  6. Springboot03整合SpringDataJPA访问MySQL数据库

    使用SpringBoot访问MySQL数据库,并且结合SpringDataJPA完成CRUD(Create,Read,Update,Delete 结合 Springboot01 中的demo案例 Sp ...

  7. http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库

    一.GET请求(2步) 1.修改实现客户端与服务器通信的LoginToSever.java文件 注释"public String doPost(String name,String psd) ...

  8. jpa mysql_Spring boot通过JPA访问MySQL数据库

    本文展示如何通过JPA访问MySQL数据库. JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据 ...

  9. Springboot学习1——通过JPA访问MySQL数据库

    本文展示如何通过JPA访问MySQL数据库. JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据 ...

最新文章

  1. 下载插件(贪心算法)
  2. mysql存储登录密码_当密码存储在选项文件中时,MySQL拒绝登录尝试
  3. 带你了解线缆、WIFI、以太网协议和网络寻址
  4. webpack 图片压缩不起作用_理论|webpack2 终极优化
  5. Boost::context模块fiber的回溯测试程序
  6. error LNK2019 unresolved external symbol __imp__IoDeleteDevice 错误
  7. DIY高清云台(吊舱)方案
  8. 将银行大写数字转换为纯数字
  9. 诺基亚10.22变革影响的分析(转)
  10. 【HUSTOJ】1047: 字符图形3-平行四边形
  11. 在android中在屏幕密度为160,在 android 中,在屏幕密度为160时,1pt 大概等于多少sp...
  12. 伤感qq日志-爱冷了 情淡了、心累了,陌生了
  13. Xamarin.Forms学习之路——MarvelCard改造版
  14. 图解|网络究竟是如何运作的?
  15. ORA-01779: 无法修改与非键值保存表对应的列
  16. mysql root密码是什么_mysql如何查看root密码是什么
  17. Charmer--viv【并查集】【最小生成树】
  18. Blender渲染线框图
  19. 游戏编程之十 图像引擎DirectXDraw
  20. 计算机组成原理孙启良,[计算机硬件及网络]第1章 概论 计算机的基本组成.ppt

热门文章

  1. 有没有一键换天空的修图软件?教你一键修图的简单方法
  2. ArcGIS如何创建地形剖面图
  3. 【NOIP_模拟题】地形剖面图
  4. 结构化电子病历的特点及优势
  5. shape[0]、shape[1]、shape[2]代表了什么
  6. 黑客讲述渗透Hacking Team全过程(详细解说)
  7. ViT pre-trained models 预训练模型下载
  8. Global Enqueue Services Deadlock --WFG的诊断
  9. 个人心得——相机拍照照片不清晰
  10. [线性规划 对偶原理 单纯形] BZOJ 3265 志愿者招募加强版