PHP学习笔记之连接mysql数据库
果文章出现错误,希望各位包涵、指出。
言归正传,对于PHP来讲,它是默认支持MYSQL的,也就是说我们不必再去手动设置ODBC来使用MYSQL了,我们所需要做的设置就是在php.ini中引入MYSQL插件。首先找到你的php.ini,编辑它,将extension = php_mysql.dll前的分号(“;”)去掉即可。这样,我们的php就可以使用MYSQL了。
接下来我们连接mysql,mysql_connect(servername:port,username,password)就是用于连接mysql的函数,其中servername:port参数就是数据库地址以及数据库端口(默认情况下port参数为3306);username即是登陆数据库所使用的用户名,password则是对应用户的密码。由于我的数据库就在本机上所以连接时我使用以下语句。
连接代码
$con = mysql_connect("localhost","root",""); //$con可理解为连接号
当然我们不能让mysql一直处于连接状态,对于小型应用来说或许这不算问题,但对于大型web应用来讲这是很浪费资源的,所以用完数据库连接之后我们要关掉它。这个任务我们交给mysql_close(连接号)来完成。
开启和关闭数据库连接
代码如下 | 复制代码 |
$con = mysql_connect("loaclhost","root",""); $con = mysql_close($con); |
弄明白了如何连接和断开数据库,接下来就是在mysql中创建数据库,这听起来很拗口,因为同一台mysql服务器中可以允许多个数据库的存在。这里我们有两种方法来建立数据库,法一使用mysql_create_db()函数,但不建议大家使用这种方法。
创建数据库
代码如下 | 复制代码 |
$con = mysql_connect("localhost","root",""); |
法二,我们直接采用mysql_query()函数来执行sql语句。Create DATABASE 就是用于创建数据库的sql语句,例如Create DATABASE test,就是创建一个名为test的数据库。
创建数据库
代码如下 | 复制代码 |
$con = mysql_connect("localhost","root","");
|
建完数据库,我们要向数据库中添加数据表。同样是采用mysql_query()函数来执行sql语句,但不同的是之前我们要使用mysql_select_db()函数来选择我们操作的数据库。
代码如下 | 复制代码 |
$con = mysql_connect("localhost","root",""); mysql_query("Create DATABASE guestbook",$con); mysql_select_db("guestbook",$con); mysql_query("Create TABLE users(username varchar(15), password varchar(15))"); mysql_close($con); /* 建表语句: Create TABLE 表明(字段名_1 字段数据类型_1,字段名_2 字段数据类型_2,......,字段名_n 字段数据类型_n) */ |
在数据库中建立好表、字段等数据数据关系之后,就差实实在在的数据了。同上,使用mysql_query()函数执行添加数据的sql语句,Insert INTO 表名 (字段名_1,字段名_2,......,字段名_n) VALUES (数据_1,数据_2,......,数据_n)。
代码如下 | 复制代码 |
|
现在,我们的数据库中已经有了数据,接下来我们使用select语句来进去查询。
代码如下 | 复制代码 |
$con = mysql_connect("localhost","root",""); mysql_query("Create DATABASE guestbook",$con); mysql_select_db("guestbook",$con); mysql_query("Create TABLE users(username varchar(15), password varchar(15))"); $select = mysql_query("select * from users"); while ($row = mysql_fetch_array($select);) { echo $row['username']; echo $row['password']; } mysql_close($con); |
这样,通过while循环我们就可以把users表中所有的数据全部查询出来,上面这样做不好重复利了,下面我们可以做成数据库连接类。
代码如下 | 复制代码 |
<?php class Database { function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) { /* SQL:Select() 返回为false无结果 */ function Select($table, $columns, $condition = 1) { /* SQL:GetRows() 返回查询的记录总数 */ function GetRows($table, $condition = 1) { /* SQL:Insert() */ function Insert($table, $columns, $values) { /* SQL:Update() */ function Update($table, $setings, $condition) { /* SQL:Delete */ function Delete($table, $condition) { /* Halt():error message */ function Halt($msg) { switch ($db->dbType) { |
Cookie和Session算是网站登陆验证的常用手段了。不管论坛也好,微博也好,它们都依赖于cookie和session以完成各项工作。
这里就不具体介绍Cookie和Session的概念了,我们可以简单的把它们理解为临时钥匙,用于开启不同的网络资源。
下面开始介绍在PHP里如何操作Cookie和Session。
Cookie:
在PHP里,我们可以使用setcookie()函数来设置cookie。但特别注意,setcookie函数必须置于<html>标签之前。setcookie函数包含了一下几个参数:setcookie(name, value, expire, path, domain)。name参数是用来规定cookie的名称的,而value则是规定对应名称cookie的值,expire则是设定cookie有效期的。特别注意path和domain参数可选的。(path是规定cookie的服务器路径,而domain是规定cookie的所有域名)。
一般我们这样设置cookie
设置cookie
代码如下 | 复制代码 |
<?php
|
username就是我们cookie的名字了,而Ku_Andrew则是username的值,time()+3600就是一小时后该cookie过期。
现在我们用$_COOKIE来做一个实例
设置、读取cookie
代码如下 | 复制代码 |
<?php
|
如果想做出更复杂的判断,例如用户登陆等,我们可以在IF语句中的加入从数据库从检索出来的值。
Session:
与Cookie不同,Session是保存在服务器上的,同时Session会随着浏览器的关闭而自动灭亡,生命周期较短。在PHP上,我们使用session_start()函数来启动session;与设置cookie相同,我们必须在<html>标签之前使用这个函数。使用这个函数之后我们就可以开始设置我们的Session变量了。方法也是极为简单:用$_SESSION数组直接定义。完成了定义,在不使用的时候为了节约服务器资源,我们要关闭它。这时可以使用unset()函数或者session_destroy()函数;unset()是解除变量,session_destroy()则是彻底终结session。下面是代码片段。
Session设置、读取
代码如下 | 复制代码 |
<?php |
这是一个简单的网页计数器,通过设置pid来实现计数。第一次判断中,如果session为空,那么设置成一,并且读取session,反馈给用户。以后的每次访问,都会在原有session的基础上逐次加一反馈给用户。
php日期函数date里面有个参数w代表周几
w分别表示为: 0 周日 1 周一 2 周二 … 6 周六
所以我们判断今天是周几的话 直接:
代码如下 | 复制代码 |
$w = date('w'); //注意上面返回的都是 数字,0123456.所以如果要显示中文的星期,可以定义下面的数组就可以了。 $weekarray=array("日","一","二","三","四","五","六"); //0表示星期日 echo '周'.$weekarray[$w]; |
而判断某天是星期几 格式为
代码如下 | 复制代码 |
date(‘w’,unix时间毫秒) echo date('w',strtotime('2012-05-09 12:23:30')); |
sprintf函数
代码如下 | 复制代码 |
<?php |
输出结果:926926.07
php进一法取整
代码如下 | 复制代码 |
echo ceil(4.3); // 5 |
php舍去法,取整数
代码如下 | 复制代码 |
|
具体方法
当我们使用CURL来post数据的时候,需要设置post的数据
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);
假如这里的$data是
$data = array(
'name'=>'www.111cn.net',
'time'=>'2012-2-3'
)
接下来,需要先将$data变成字符串
$post_data = http_build_query($data);
而采用 http_build_query 转换后再
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);
看起来没有什么问题。但在实际操作中,$post_data 并没有被post过去。于是,自己写了个转换的方法后就OK了。
代码如下 | 复制代码 |
function getStr($array,$Separator='&') { |
感谢 黄斌-huangbin 童鞋的测试 http_build_query($data,"","&"); 即可,无需自己写方法解析了。
http_build_query 就是将一个数组转换成url ?后面的参数字符串,会自动进行urlencode处理
string http_build_query ( array formdata [, string numeric_prefix])
后面的给数组中没有指定键或者键为数字的加下标
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- 这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
- 这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
- 这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
- 对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
- 我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16