[PHP] - mysql 数据库操作
使用PHP操作数据库有两种方式
- 使用mysql_XXXX()方法
- 使用这种方式,需要先把php.ini里的extension=php_mysql.dll去掉注释
- 使用PDO
- 使用这种试,需要把php.ini里的extension=php_pdo_mysql.dll去掉注释
下面演示使用第一种方式:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$conn = mysql_connect("localhost", "root", "XXXXXX");
if(!$conn) {
die("Could not connect:" . mysql_error());
} mysql_select_db("test", $conn);
//mysql_query("SET NAMES utf8"); $result = mysql_query("INSERT INTO mytable(headline, create_time) VALUES('中国', '" . date("Y-m-d h:i:s") . "');");
if( $result < 1) {
echo "insert error!";
} $query = mysql_query("SELECT * FROM mytable LIMIT 100 OFFSET 0;");
while ($row = mysql_fetch_array($query, MYSQL_BOTH)) {
echo "<p>", $row["id"], " - " , $row["headline"], " - ", $row["create_time"], "</p>";
} mysql_close();
?>
</body>
</html>
下面是使用PDO方式:
参数引用:
http://php.ncong.com/mysql/pdo/pdo_huoqu.html
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "XXXXXX");
//设置错误使用异常的模式
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//关闭自动提交
//$pdo-> setAttribute(PDO::ATTR_AUTOCOMMIT, 0);
} catch (PDOException $e) {
echo sprintf("Exception message=%s", $e->getMessage());
exit();
} /**
* 防SQL注入方式条件查询
*/
$stmt = $pdo->prepare('SELECT * FROM mytable WHERE id = :id');
$stmt->execute(array(":id"=>1));
foreach ($stmt as $row) {
echo $row["headline"];
} /**
* 插入数据
*/
$result = $pdo->exec("INSERT INTO mytable(headline, create_time) VALUES('中国', '" . date("Y-m-d h:i:s") . "');");
if($result) {
$str = sprintf("add data completed, lastupdateid=%s", $pdo->lastInsertId());
echo $str;
} /**
* 查询
*/
echo "<hr/>查询";
$rs = $pdo->query("SELECT * FROM mytable");
while ($row = $rs->fetch()) {
echo "<p>", $row["id"], " - " , $row["headline"], " - ", $row["create_time"], "</p>";
} /**
* 字段映射方式查询
*/
echo "<hr/>字段映射方式查询";
$q = $pdo->query("SELECT id, headline, create_time FROM mytable");
while (list($id, $headline, $createTime) = $q->fetch(PDO::FETCH_NUM)) {
echo "<p>", $id, " - " , $headline, " - ", $createTime, "</p>";
} /**
* 一次性查询方式
*/
echo "<hr/>一次性查询方式";
$query = $pdo->prepare("SELECT * FROM mytable");
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
echo "<p>", $row["id"], " - " , $row["headline"], " - ", $row["create_time"], "</p>";
} /**
* 字段绑定方式
*/
echo "<hr/>字段绑定方式";
$stm = $pdo->prepare("SELECT id, headline, create_time FROM mytable");
$stm->execute();
$stm->bindColumn(1, $id);
$stm->bindColumn("headline", $headline);
$stm->bindColumn(3, $createTime);
while ($stm->fetch(PDO::FETCH_BOUND)) {
echo "<p>", $id, " - " , $headline, " - ", $createTime, "</p>";
} //$pdo-> setAttribute(PDO::ATTR_AUTOCOMMIT, 1);
?>
</body>
</html>
建议使用PDO方式,这样可以减少SQL注入安全性问题。(php5以上建议使用PDO方式做数据库操作)
[PHP] - mysql 数据库操作的更多相关文章
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 设计模式 - 单例模式mysql数据库操作类
待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...
- MySQL数据库操作常用命令
MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...
- Python/MySQL(四、MySQL数据库操作)
Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- Python进行MySQL数据库操作
最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- (转载)常用的Mysql数据库操作语句大全
打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...
随机推荐
- 一次偶然的Java内存溢出引发的思考
据说一次SQL查询返回太多数据,会引起服务器内存溢出. 不过,我现在碰到的情况是,调用一个Postgresql 存储过程,很复杂,那么在其中有很多raise notice这样的调试语句,如果碰巧有个死 ...
- C# treeview 绑定数据 【转】
private void bindTreeView1() { string sql = "select * from dm_category"; DataTable dt = db ...
- Orchard中的命令行工具
在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...
- Memcache学习笔记
以下内容大部分来自网络,小部分是本人遇到的问题融合后的记录. 先贴一段涨姿势~ Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全 ...
- gridView RowDataBound事件 鼠标经过行颜色变化及根据字段值显示指定内容
protected void gvBarInfo_RowDataBound(object sender, GridViewRowEventArgs e) { if ...
- python requests 模块初探
现在经常需要在网页中获取相关内容. 其中无非获取网页返回状态,以及查看网页获取的内容几个方面,那么在这方面来看requests可能比urllib2库更简便一些. 比如:先用方法获取网页 r = req ...
- About SCCM 2012 UDA(User Device Affinity)
Two useful articles about UDA: http://fbinotto.blogspot.com/2011/09/sccm-2012-user-device-affinity.h ...
- webdriver 获取佰词斩的单词(涉及字符串转换)
from selenium import webdriver def finds(da): d = da.split(',"') t = {} for i in (d[1], d[2], d ...
- nodevalue
在改变文本节点值时,使用DOM的nodeValue属性,用来得到和设置一个节点的值. 代码示例: html: <p id="description">choose a ...
- 修改hive分区表,在分区列前增加一个字段
本文主要为了测试,在有数据的分区表中增加新的一个非分区字段后,新数据加入表中是否正常. 原始数据 1;zhangsan 2;zhangsan 3;zhangsan 4;lisi 5;lisi 6;li ...