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
转载随意,但请附上文章地址:-)