PHP学习笔记之连接mysql数据库
发布:smiling 来源: PHP粉丝网 添加日期:2014-02-24 10:24:19 浏览: 评论:0
接触PHP已经有一段时间了,今天写一篇关于PHP连接MYSQL数据库的文章,也算是自己对学习PHP与数据库的一点总结.如果文章出现错误,希望各位包涵、指出.
言归正传,对于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_create_db("guestbook",$con);
- mysql_close($con);
法二,我们直接采用mysql_query()函数来执行sql语句.Create DATABASE 就是用于创建数据库的sql语句,例如Create DATABASE test,就是创建一个名为test的数据库.
创建数据库实例代码如下:
- $con = mysql_connect("localhost","root","");
- mysql_query("Create DATABASE guestbook",$con);
- mysql_close($con);
建完数据库,我们要向数据库中添加数据表,同样是采用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).
实例代码如下:
- $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_query("Insert INTO users (username,password) VALUES ('Ku_Andrew','123456')");
- mysql_close($con);
现在,我们的数据库中已经有了数据,接下来我们使用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表中所有的数据全部查询出来,上面这样做不好重复利了,下面我们可以做成数据库连接类.
实例代码如下:
- //------------------------------------------------------------------------------------------
- // ※Database() 构造函数,数据库初始参数
- // ※Select() 查询
- // ※GetRows() 返回查询的记录总数
- // ※Insert() 插入记录
- // ※Update() 更新
- // ※Delete() 删除
- // ※Halt() 中断并显示错误信息 111Cn.Net */
- //------------------------------------------------------------------------------------------
- define("DATABASETYPE", "1"); //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc
- define("SERVER", "localhost"); //Host name or IP address of the database server
- define("DATABASE", "dbName"); //要连接的数据库名
- define("USER", "tableName"); //用于连接数据库的用户名
- define("PASSWORD", "paswd"); //用于连接数据库的密码
- class Database {
- var $dbLink; //连接句柄
- var $result; //查询句柄
- var $insId; //Insert()成功返回AUTO_INCREMENT列的值
- var $rows; //返回数据数组
- var $numRows; //返回数据数目
- var $dbHost, $dbUser, $userPassword, $database;
- var $dbType = DATABASETYPE;
- var $msgFlag = "yes"; //yes:show the Mysql message ; no: die by show "Halted."
- function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) {
- switch ($this->dbType) {
- case 1:
- $this->dbLink = @mysql_pconnect($dbHost, $dbUser, $userPassword); // or die("Can't Connect to Remote Host!");
- @mysql_select_db($database, $this->dbLink); // or die ("Can't Connect to Remote Host!");
- break;
- case 2:
- break;
- }
- return true;
- }
- /* SQL:Select() 返回为false无结果 */
- function Select($table, $columns, $condition = 1) {
- $sql = "select $columns from $table where $condition ";
- $this->result = @mysql_query($sql, $this->dbLink);
- unset($this->rows);
- if ($this->result) {
- $i = 0;
- if (!($this->rows = array("$i" => @mysql_fetch_array($this->result))))
- return false;
- if (($this->numRows = @mysql_num_rows($this->result)) == 0)
- return false;
- while ($tempRows = @mysql_fetch_array($this->result)) {
- array_push($this->rows, $tempRows);
- }
- } else {
- $this->Halt($sql);
- return false;
- }
- return true;
- }
- /* SQL:GetRows() 返回查询的记录总数 */
- function GetRows($table, $condition = 1) {
- $sql = "select count(1) as count from $table where $condition";
- $this->result = @mysql_query($sql, $this->dbLink);
- if ($this->result) {
- $temp = @mysql_fetch_array($this->result);
- $this->numRows = $temp[count];
- } else {
- $this->Halt($sql);
- return false;
- }
- return $this->numRows;
- }
- /* SQL:Insert() */
- function Insert($table, $columns, $values) {
- $sql = "insert into $table ($columns) values ($values)";
- $this->result = @mysql_query($sql, $this->dbLink);
- if ($this->result)
- $this->insId = @mysql_insert_id($this->dbLink);
- else {
- $this->Halt($sql);
- return false;
- }
- return true;
- }
- /* SQL:Update() */
- function Update($table, $setings, $condition) {
- $sql = "update $table set $setings where $condition";
- $this->result = @mysql_query($sql, $this->dbLink);
- if ($this->result)
- $this->numRows = @mysql_affected_rows($this->result);
- else {
- $this->Halt($sql);
- return false;
- }
- return true;
- }
- /* SQL:Delete */
- function Delete($table, $condition) {
- $sql = "delete from $table where $condition";
- $this->result = @mysql_query($sql, $this->dbLink);
- if ($this->result)
- $this->numRows = @mysql_affected_rows($this->result);
- else {
- $this->Halt($sql);
- return false;
- }
- return true;
- }
- /* Halt():error message */
- function Halt($msg) {
- if ($this->msgFlag == "yes") {
- printf("Database Query Error: %s
n", $msg);- printf("MySql Error: %s
n", mysql_error());- }else
- echo ""; //自定一个出错提示文件
- return false;
- }
- }
- switch ($db->dbType) {
- case 1:
- @mysql_close();
- break;
- case 2:
- break;
- }
- $db = new Database();
- ?>
Tags: PHP连接 mysql
- 上一篇:删除mysql数据库所有数据表方法
- 下一篇:php连接数据库标准代码
相关文章
- ·php连接mysql数据库的几种方式(mysql、mysqli、pdo)(2014-09-25)
- ·php中连接MYSQL数据库的方法总结(2014-10-09)
- ·怎样使MySQL安全以对抗解密高手(2013-11-11)
- ·MYSQL用户root密码为弱口令的攻击(2013-11-11)
- ·Mysql数据库的安全配置、实用技巧(2013-11-11)
- ·Mssql和Mysql的安全性分析(2013-11-11)
- ·MySQL安全问题的一点心得(2013-11-11)
- ·PHP常用MySql操作(2013-11-13)
- ·MySQL数据库下载漏洞攻击技术(2013-11-14)
- ·MySQL3.23.31之前版本的安全漏洞(2013-11-14)
- ·通过Mysql的语句生成后门木马的方法(2013-11-14)
- ·MySQL服务器内部安全数据目录访问(2013-11-14)
- ·MySQL数据库中的安全解决方案(2013-11-14)
- ·如何保护MySQL 中的重要数据(2013-11-14)
- ·为你的MySQL数据库加铸23道安全门(2013-11-14)
- ·Mysql的Root密码遗忘的解决办法(2013-11-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)