第16章 PHP操作MySQL

学习要点:

1.PHP连接到MySQL

2.增删改查

3.其他常用函数

如果你已经具有了使用PHP、SQL和MySQL的丰富经验,现在就可以把所有这些技术组合在一起。PHP与MySQL之间稳固的集成只是众多程序员采纳它的一个原因,还有一个原因就是,它如此的简单方便。

一.PHP连接到MySQL

这里,我们全面采用UTF-8编码。

设置Zend Stduio的编码:Window -> Preferences -> Workspace

标头设置,让火狐和IE保持编码统一:

<?php

header('Content-Type:text/html; charset=utf-8');

?>

连接MySQL

<?php

$conn = @mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or

die('数据库连接失败!错误信息:'.mysql_error());

?>

数据库连接参数,可以用常量存储,这样就不能修改,更加安全。

<?php

define('DB_USER','root');

define('DB_PASSWORD','yangfan');

define('DB_HOST','localhost');

define('DB_NAME','school');

?>

选择你所需要的数据库

<?php

@mysql_select_db(DB_NAME) or die('数据库找不到!错误信息:'.mysql_error());

?>

设置字符集,如果是GBK,直接设置SET NAMES GBK即可

<?php

@mysql_query('SET NAMES UTF8') or die('字符集设置错误');

?>

获取记录集

<?php

$query = "SELECT * FROM grade";

$result = @mysql_query($query) or die('SQL语句有误!错误信息: '.mysql_error());

?>

输出一条记录

<?php

print_r(mysql_fetch_array($result,MYSQL_ASSOC));

?>

释放结果集资源

<?php

mysql_free_result($result);

?>

关闭数据库

<?php

mysql_close($conn);

?>

二.增删改查

新增数据

<?php

$query = "INSERT INTO grade (name,email,point,regdate) VALUE

('李炎恢','yc60.com@gmail.com',,NOW())";

@mysql_query($query) or die('添加数据出错:'.mysql_error());

?>

修改数据

<?php

$query = "UPDATE grade SET name='小可爱' WHERE id=6";

@mysql_query($query) or die('修改出错:'.mysql_error());

?>

删除数据

<?php

$query = "DELETE FROM grade WHERE id=6";

@mysql_query($query) or die('删除错误:'.mysql_error());

?>

显示数据

<?php

$query = "SELECT id,name,email,point FROM grade";

$result = @mysql_query($query) or die('查询语句出错:'.mysql_error());

while (!!$row = mysql_fetch_array($result)) {

echo $row['id'].'----'.$row['name'].'----'.$row['email'].'----'.$row['point'];

echo '<br />';

}

?>

三.其他常用函数

mysql_fetch_row():从结果集中取得一行作为枚举数组

mysql_fetch_assoc(): 从结果集中取得一行作为关联数组

mysql_fetch_array(): 从结果集中取得一行作为关联数组,或数字数组,或二者兼有

mysql_fetch_lengths(): 取得结果集中每个输出的长度

mysql_field_name():  取得结果中指定字段的字段名

mysql_num_rows(): 取得结果集中行的数目

mysql_num_fields():取得结果集中字段的数目

mysql_get_client_info(): 取得 MySQL 客户端信息

mysql_get_host_info(): 取得 MySQL 主机信息

mysql_get_proto_info(): 取得 MySQL 协议信息

mysql_get_server_info(): 取得 MySQL 服务器信息

================================================================

================================================================

================================================================

整体操作:

<?php

/*     mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句 语句返回一个 resource,如果查询出现错误则返回 FALSE。

    对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。

    返回的结果资源应该传递给 mysql_fetch_array() 和其他函数来处理结果表,取出返回的数据。

    假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行
或者调用 mysql_affected_rows() 来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。 如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE。
*/ //第一步,设置输出编码
header('Content-Type:text/html; charset=utf-8'); //第二步,定义常量,保存链接参数
//数据库服务器
define('DB_SERVER','localhost:3306');
//用户名
define('DB_NAME','root');
//密码
define('DB_PWD','123456');
//数据库
define('DB_DATABASE', 'guest'); //第三步,连接数据库服务器
$conn = @mysql_connect(DB_SERVER,DB_NAME,DB_PWD) or die('数据库连接错误:'.mysql_error($conn)); //第四步,选择使用的数据库
@mysql_select_db(DB_DATABASE,$conn) or die('选择数据库错误:'.mysql_error($conn)); //第五步,设置返回数据的字符集
@mysql_query('SET NAMES UTF8') or die('字符集设置错误'); //第六步,创建并发送一条SQL语句
//创建SQL语句
$query = "select * from g_users";
//发送语句
$result = @mysql_query($query,$conn) or die('SQL错误,错误信息:'.mysql_errno()); //第七步,取得查询的数据
//取得所有数据
$data = mysql_fetch_array($result,MYSQL_ASSOC);
//取得总记录条数
//$data = mysql_num_rows($result); //第八步,打印出数据
print_r($data); //第九步,销毁获取的数据资源
mysql_free_result($result); //第十步,关闭数据库连接
mysql_close($conn);
?>

配置MySQLHELper代码:

<?php

    //第一步,设置输出编码
header('Content-Type:text/html; charset=utf-8'); //第二步,定义常量,保存链接参数
//数据库服务器
define('DB_SERVER','localhost:3306');
//用户名
define('DB_NAME','root');
//密码
define('DB_PWD','123456');
//数据库
define('DB_DATABASE', 'test'); //第三步,连接数据库服务器
$conn = @mysql_connect(DB_SERVER,DB_NAME,DB_PWD) or die('数据库连接错误:'.mysql_error($conn)); //第四步,选择使用的数据库
@mysql_select_db(DB_DATABASE,$conn) or die('选择数据库错误:'.mysql_error($conn)); //第五步,设置返回数据的字符集
@mysql_query('SET NAMES UTF8') or die('字符集设置错误'); ?>

操作代码:

<?php

    include_once 'config.php';

    //添加一条数据
/* $Insert_query = "insert into person (name, sex) values ('张三', '男')";
//执行
@mysql_query($Insert_query) or die('插入操作失败,错误原因:'.mysql_error());
//返回 insert ,delete, update,等修改的行数
$num = mysql_affected_rows(); //显示信息
/* if ($num == 1) {
echo '添加成功!';
}else {
echo '添加失败!';
} */ //删除一条数据
/* $delete_query = "delete from person where id = 7";
//执行
@mysql_query($delete_query) or die('删除数据失败,错误原因:'.mysql_error());
$num = mysql_affected_rows(); //显示信息
/* if ($num == 1) {
echo '删除成功!';
}else {
echo '删除失败!';
} */ //修改一条数据
/* $update = "update person set name = '王五', sex = '女' where id = 8";
//执行
@mysql_query($update) or die('修改发生错误,错误原因:'.mysql_error());
$num = mysql_affected_rows(); //显示信息
/* if ($num == 1) {
echo '修改成功!';
}else {
echo '修改失败!';
} */ //查询数据
/* $query = "select id, name, sex from person";
$result = mysql_query($query); */
//打印单行
/* $row = mysql_fetch_array($result,MYSQL_ASSOC);
echo $row['id'].'--'.$row['name'].'--'.$row['sex']; */ //打印多行
//当$row不为空的时候,打印数据。使用"!!"的作用是,使得$row数组转换为布尔值。
/* while (!!$row = mysql_fetch_array($result)) {
echo $row['id'].'--'.$row['name'].'--'.$row['sex']."<br/>";
} */ //获取记录条数
/* $num_query = "select id, name, sex from person";
$result = mysql_query($num_query) or die('查询条数出错,错误信息:'.mysql_error());
$num = mysql_num_rows($result); echo '条数:'.$num; */ //关闭数据库链接
mysql_close(); ?>

PHP - 操作MySQL数据库的更多相关文章

  1. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  2. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  3. 转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...

  4. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  5. Code First操作Mysql数据库

    前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...

  6. JDBC操作MySQL数据库案例

    JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  7. shell脚本操作mysql数据库

    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql  -hhostname -Pport -uusername -pp ...

  8. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  9. 使用node js 操作 Mysql 数据库

    使用node js 操作 Mysql 数据库 http://www.nodejs.org/ //node js 数据库操作 MySQL //使用https://github.com/felixge/n ...

  10. 批处理操作mysql数据库

    批处理操作mysql数据库 1.使用批处理自动登录mysql数据库 @echo offcd C:\program files\mysql\mysql server 5.5\binmysql -u ro ...

随机推荐

  1. 基本的编程原则SOLID

    1.单一职责原则:每个类只负责完成一个职责,当它需要完成多个职责时就需要将它拆分开来. 2.开放封闭原则:对扩展开放,对修改封闭. 3.里氏替换原则:子类对象可以替换(代替)它的所有父类(超类)对象. ...

  2. Laravel OAuth2 (一) ---简单获取用户信息

    前言 本来要求是使用微信进行第三方登陆,所以想着先用 github 测试成功再用微信测试,可是最近拖了好久都还没申请好微信开放平台的 AppID ,所以就只写 github 的第三方登陆吧,估计微信的 ...

  3. Android 开发笔记 “SQLite”

    SQLite 入门与分析 1.SQLite介绍 自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分.正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系统资源, ...

  4. python成长之路17

    一:web框架的本质,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1.1:python实现: #!/usr/bin/env python ...

  5. 设计模式总结1--observer pattern

    <!-- 设计模式 --><!--是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性 --&g ...

  6. IT第十天 - String和StringBuffer的比较、编程设计技巧整理、本周总结 ★★★

    IT第十天 上午 String 1.String在进行多次的+扩展时,会严重的降低处理效率,因为String长度是不可变的,在进行+运算改变字符串时,会自动创建很多临时字符串,并不是在原字符串上追加, ...

  7. Linux android studio :'tools.jar' seems to be not in Android Studio classpath.

    问题: 'tools.jar' seems to be not in Android Studio classpath.Please ensure JAVA_HOME points to JDK ra ...

  8. DIOR HOMME_百度百科

    DIOR HOMME_百度百科     DIOR HOMME    编辑    Dior Homme 男装品牌,中文名迪奥·桀傲,由迪奥 (Dior) 在2001年更名更来,品牌来源地法国.迪奥·桀傲 ...

  9. Going Home(最大匹配km算法)

    Going Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20115   Accepted: 10189 Desc ...

  10. Loadrunner 运行场景时:missing newline in XXX.dat 错误解决

    脚本参数化类型为file,在controller里运行场景的时候,报了个missing newline的错误,查了一下,将参数化的dat文件中的最后一行补上一个空行就解决啦!! 如果遇到此错误,需检查 ...