PHP操作MySQL数据库的常用方法
在php中操作mysql数据库的方法有常用的三种,我们使用最多的估计是mysql或mysqli当然还有一个pdo_mysql了,下面整理了一些例子给各位参考
一.mysql数据库
<?php $conn = mysql_connect("localhost", "root", "123456") or die("数据库连接失败"); mysql_select_db("test") or die("选择数据库失败");; $sql = "select * from user"; $data = mysql_query($sql); echo '<table border="1" align="center" width="800">'while ($row = mysql_fetch_assoc($result)) { echo '<tr>'; foreach ($row as $col) { echo '<td>' . $col . '</td>'; } echo '</tr>'; }; echo '</table>'; mysql_close(); ?>
补充
<?php // 从表中提取信息的sql语句 $strsql = "SELECT * FROM `gbook`"; // 执行sql查询 $result = mysql_db_query($mysql_database, $strsql, $conn); // 获取查询结果 $row = mysql_fetch_row($result); echo '<font face="verdana">'; echo '<table border="1" cellpadding="1" cellspacing="2">'; // 显示字段名称 echo "</b><tr></b>"; for ($i = 0; $i < mysql_num_fields($result); $i++) { echo '<td bgcolor="#000F00"><b>' . mysql_field_name($result, $i); echo "</b></td></b>"; } echo "</tr></b>"; // 定位到第一条记录 mysql_data_seek($result, 0); // 循环取出记录 while ($row = mysql_fetch_row($result)) { echo "<tr></b>"; for ($i = 0; $i < mysql_num_fields($result); $i++) { echo '<td bgcolor="#00FF00">'; echo $row[$i]; echo '</td>'; } echo "</tr></b>"; } echo "</table></b>"; echo "</font>"; // 释放资源 mysql_free_result($result); // 关闭连接 mysql_close($conn); ?>
二.pdo_mysql(推荐)
连接:
$dsn = "mysql:host=localhost;dbname=test"; $username = 'root'; $password = '123456'; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', ); $pdo = new PDO($dsn, $username, $password, $options); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
增:
方法1: 绑定关联数组
$str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (:username,:password)"); $str->execute(array(":username"=>"test", ":password"=>"passwd"));
方法2: 绑定索引数组
$str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (?,?)"); $str->execute(array("test", "passwd"));
删:
$str=$pdo->prepare("delete from user where id > 3"); $str->execute();
改:
$str=$pdo->prepare("UPDATE `user` SET username=:username,password=:password where id=:id"); $str->execute(array(":username"=>"test", ":password"=>"passwd", ":id"=>"3"));
查:
方法1: 单个取出,循环遍历,返回到数组
<?php $str = $pdo->prepare("select * from user where id > :id order by id"); $str->execute(array( ":id" => 2 )); $str->setFetchMode(PDO::FETCH_ASSOC); //共三种:1.PDO::FETCH_BOTH(默认) 2.FETCH_ASSOC 3.FTECH_NUM while ($data = $str->fetch()) { print_r($data); echo '<br>'; } ?>
方法2: 全部取出,返回到二维数组
<?php $str = $pdo->prepare("select * from user order by fid"); $str->execute(); $data = $str->fetchAll(PDO::FETCH_NUM); print_r($data); ?>
方法3:单个取出,循环遍历,绑定字段名到变量
<?php $str = $pdo->prepare("select fid,username,password from user order by id"); $str->execute(); $str->bindColumn("id", $id); $str->bindColumn("username", $username); $str->bindColumn(3, $password); while ($str->fetch()) { echo "$id | $username | $password <br>"; } echo "总记录数:" . $str->rowCount() . "<br>"; echo "总字段数:" . $str->columnCount() . "<br>"; ?>
二.mysqli
(用mysqli链接MYSQL数据库)
<?php requery_once("config.ini.php"); $mysqliObj = new mysqli($dbhost, $dbuser, $dbpwd, $dbname); if (mysqli_connect_errno()) { echo "连接失败" . mysqli_connect_error(); exit(); } $mysqliObj->query("set name $charName"); ?>
(其他操作)
查询
-----------------------------------------------------
(单条查询)
$sql = "drop table if exists user;";
$mysqliObj->query($sql);
(多条查询)
$musqliObj->multip_query($sql)
返回执行$sql受影响的行数()
----------------------------------------------------
if($mysqliObj->query($sql))
echo $mysqliObj->affected_rows;
insert 插入时,返回插入的id (很有用)
---------------------------------------------------
$num = $mysqliObj->insert_id;
<?php $mysqli = new mysqli("localhost", "root", "123456", "test"); $sql = "select * from user order by id"; $result = $mysqli->query($sql); echo '<table align="center" border="1" width="800">'; while ($row = $result->fetch_assoc()) { echo '<tr>'; foreach ($row as $col) { echo '<td>' . $col . '</td>'; } echo '</tr>'; } echo '</table>'; $mysqli->close();
三种处理查询结果------------------------------------------------------ -
$sql = "select * from user"; $result = $mysqli->query($sql); (1) fetch_row() 返回索引数组fetch_row() while (list($id, $name, $pwd) = $result->fetch_row()) { echo "id: " . $id . " name:" . $name . " pwd:" . $pwd . "<br>"; } (2) fetch_assoc() 返回关联数组fetch_assoc() while ($row = $result->fetch_assoc()) { echo "id:" . $row["userId"] . " name:" . $row["userName"] . " pwd:" . $row["password"] . "<br>"; } (3)fetch_object() 返回对象while ($row = $result->fetch_object()) { echo "id:" . $row->userId . " name:" . $row->uerName . " pwd:" . $row->password . "<br>"; }
本文地址:http://www.phprm.com/database/63109.html
转载随意,但请附上文章地址:-)