使用PHP从Web访问MySQL数据库

基本步骤

  1. 检查并过滤来自用户的数据
  2. 建立一个到适当数据库的链接
  3. 查询数据库
  4. 获取查询结果
  5. 将结果显示给用户

建立一个链接

@ $db = new mysqli('localhost', 'bookorama', 'bookorama456', 'books');
  • 面向对象
@ $db = mysqli_connect('localhost', 'bookorama', 'bookorama456', 'books');
  • 面向过程
if (mysqli_connect_errno()){
	echo ...;
	exit;
}
  • mysqli_connect_errno() 在连接错误时返回错误号,否则返回0

选择使用的数据库

$db->select_db(dbname);
// or
mysqli_select_db(db_resource, db_name);

查询数据库

$query = 'SELECT * FROM books WHERE '.$searchtype." LIKE '%".$searchterm."%'";
  • 查询不需要加分号
$result = $db->query($query);
// or
$result = mysqli_query($db, $query);
  • 面向对象返回一个对象,面向过程返回资源版本;
  • 执行失败返回 false;

检查查询结果

$num_result = $result->num_rows;
// or 
$num_rusult = mysqli_num_rows($result);
// 返回行数
$row = $result->fectch_assoc();
//or
$row = mysqli_fetch_assoc($result);
  • 接受结果集合中的每一行,并以一个相关数组返回该行。
  • 还$result->fetch_row($result);
    返回列举数组
  • $row = $result->fetch_object();
    $row->title;

断开连接

$result->free();
// or
mysqli_free_result($result);

// then
$db->close;
// or
mysqli_close($db);

将新信息放入到一个数据库

echo $db->affected_rows.' book inserted into database.';

Prepared 语句

  • 可以向MySQL 发送一个需要执行的查询模板,然后再单独发送数据
$query = "INSERT INTO books VALUES (?,?,?,?)";
$stmt = $db->prepare($query);
$stmt->bind_param("sssd", $isbn, $author, $title, $price);
$stmt->execute();
echo $stmt->affected_rows.' books inserted into database.';
$stmt->close;
  • bind_param() 告诉PHP 那些变量应该被问号所替换。
    第一个参数为一个格式化字符串
    意味着四个参数分别为string,string,string,double
    (其他格式化字符串有i—整数,b—blob)
  • $stmt->execute() 将真正运行查询
  • prepared语句作用
  1. 改变四个绑定变量的值,并且在不用准备的情况下重新执行这个语句。
  2. 对于批量插入操作是有用的
  • $stmt->bind_result() 提供希望填充结果列的变量列表
  • 如:
$stmt->bond_result($isbn, $author, $title, $price);
$stmt->execute();
for (i = 0, i < $stmt->num_rows, i++)
{
	$stme->fetch();
	echo $isbn;
}

每次调用fetch 时,将获得下一个结果行,并填充到四个绑定变量中;

使用PHP与数据库交互的其他接口

常规的数据库接口 PEAR MDB2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值