php中关于数据库的操作
php中对数据库的操作,举例如下:
//连接到本地mysql数据库
$myconn=mysql_connect("localhost","root","root");
//这就是指定数据库字符集,一般放在连接数据库后面就系了
mysql_query("set names 'gbk'"); //
//选择test为操作库
mysql_select_db("test",$myconn);
$strSql="select * from user";
//用mysql_query函数从user表里读取数据
$result=mysql_query($strSql,$myconn);
//通过循环读取数据内容
while($row=mysql_fetch_array($result))
{
?>
<tr>
<td align="center" height="19"><?echo $row["id"]?></td>
<td align="center"><?echo $row["userid"]?></td>
。。。
</tr>
<?
}
//关闭对数据库的连接
mysql_close($myconn);
上例中列出了大部分常用的php中数据库操作,为mysql链接版,这样的代码有几个问题:
0.可以通过预定义的方式来定义变量,比如数据库所在的主机,用户名等:如define(MYSQL_HOST, ‘localhost’)。在编写代码时应时刻注意这个问题,通过这样的解耦合操作,使代码可重用,易修改性得到很大提高。
1. 每种操作都不保证成功,可以添加die()错误处理:如
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die(‘Unable to connect, please check connection paremeters’);
die()和exit()都是中止脚本执行函数;其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别名。该函数只接受一个参数,可以是一个程序返回的数值或是一个字符串,也可以不输入参数,结果没有返回值。
参考:虽然两者相同,但通常使用中也有细微的选择性。例如:
当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常用exit()这个名字 echo "1111"; exit(0);
当程序出错时,可以给它传递一个字符串,它会原样输出在系统终端上,通常使用die()这个名字。$fp=fopen("./readme.txt","r") or die("不能打开该文件");
2.这里的代码只针对mysql,若系统要迁移,数据库要变为其他,如Oracle等则代码变动较多,带来很多额外工作量。而java做后台,则有jdbc来访问数据库,通过不同的数据库厂商提供的数据库驱动访问数据库。所以从php5之后加入了类似的pdo来为多种数据库提供统一访问,使用pdo可以屏蔽底层数据库差异。下面一个简答举例:
<?php
$dsn = "mysql:host=localhost;dbname=test";
$db = new PDO($dsn, 'root', '');
$count = $db->exec("INSERT INTO foo SET name = 'heiyeluren',gender='男',time=NOW()");
echo $count;
$db = null;
?>
新建pdo对象时第一个参数为数据源,里面可以指定来自不同的数据库的参数。然后可以使用pdo的一系列方法与数据源交互。
php中关于数据库的操作的更多相关文章
- Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法
Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...
- Qt中MySQL数据库的操作例程
数据库连接不成功时,要将libmysql.dll放到C:\Qt\Qt5.11.0\5.11.0\mingw53_32\bin和C:\Qt\Qt5.11.0\5.11.0\msvc2017_64\bin ...
- python中mysql数据库的操作-sqlalchemy
MySQLdb支持python2.*,不支持3.* ,python3里面使用PyMySQL模块代替 python3里面如果有报错 django.core.exceptions.ImproperlyC ...
- C#中 ACCESS数据库常用操作语句...容易出错的地方(DateTime类型)
这次在C#编程过程中,第一次用到了ACCESS数据库,重点涉及到时间类型,整数类型.是否类型....;遇到了许多困难,就把这些整理了下来,与大家分享. 一.Insert语句的基本格式: INSERT ...
- VS中关于数据库的操作
1.数据库迁移 第一步: 第二步: 在窗口中选择项目中的EntitiyFramwork项目(与数据库连接的文件集) 第三步: 输入update-database 二:数据对比 第一步: 第二步:选择需 ...
- 怎样从C#中打开数据库并进行 增 删 改 查 操作
首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...
- android中的数据库操作
如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...
- android中的数据库操作(转)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
随机推荐
- lightgallery 使用
用途 图片预览,支持多图片滑动预览 git 地址 https://github.com/sachinchoolur/lightgallery.js 代码 # idnex.html <script ...
- JAVA获取指定日期是星期几
/** * 获取指定日期是星期几<br> * * @param date * @return 指定日期是星期几 */ public static String getWeekOfDate( ...
- std::bind与std::ref, why and how
首先解释下为什么有时候需要bind. 我们可以用bind从函数T add(T a, T b)造出个inc()来,即把b写死为1.这个例子本身比较傻,但有不傻的应用. template<typen ...
- ubuntu下载源码clang + llvm+lldb 编译+安装
[本文可能涉及到Ubuntu安装以下工具:] A.g++ B.gcc C.make D.cmake E.clang(10.0.1)(必须) F.llvm(10.0.1)(必须) G.lldb(10.0 ...
- 【linux】环境变量生命周期的操作方式
目录 前言 1. 修改环境变量 1.1 手动指定 1.2 临时生效 1.3 永久生效 链接 前言 参考: 李柱明博客 本文主要记录 linux 环境变量配置的生命周期. 如,修改环境变量 PATH 是 ...
- 【九度OJ】题目1445:How Many Tables 解题报告
[九度OJ]题目1445:How Many Tables 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1445 题目描述: ...
- codeforc 603-A. Alternative Thinking(规律)
A. Alternative Thinking time limit per test 2 seconds memory limit per test 256 megabytes Kevin ha ...
- Ubuntu mininet+Ryu环境安装
我们使用下载Ryu源代码进行那个安装 Ryu官方文档:http://ryu.readthedocs.io/en/latest/ Ryu电子书:http://osrg.github.io/ryu/res ...
- A Simple Framework for Contrastive Learning of Visual Representations
目录 概 主要内容 流程 projection head g constractive loss augmentation other 代码 Chen T., Kornblith S., Norouz ...
- 使用.NET 6开发TodoList应用(12)——实现ActionFilter
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 Filter在.NET Web API项目开发中也是很重要的一个概念,它运行在执行MVC响应的Pipeline中执行,允许我们 ...