PHP -- 数据库访问

一、过时方法(PHP5以前的版本用的):用函数链接数据库,相当于面向过程的方式

//设置页面编码格式

header("content-type:text/html;charset=utf-8");

1)生成链接  

$db_connect = $mysql_connect("localhost","root","517")   // localhost:服务器的地址; root:数据库的用户名;  517:数据库密码

2)选择操作的数据库

mysql_select_db("mydb",$db_connect);      // db: 代表数据库,是datebase的简写 ;  $db_connect:表示用哪一个链接数据库

3)写sql语句

$sql = "select * from Info ";

4)执行sql语句

$result = mysql_query($sql);

5)处理查询结果

$row = mysql_fetch_row($result);

备注:如果输出内容出现乱码,可以在开始处加上 header("content-type:text/html;charset=utf-8");

二、面向对象的方式

1.生成链接对象,需要四个参数

$db = new mysqli("localhost","root","517","mydb");

//mysqli 是对mysql的扩展 // localhost:服务器的地址; root:数据库的用户名;  517:数据库密码; mydb:要链接的数据库

2.判断是否连接成功

!mysqli_connect_error() or die("链接失败");  //die相当于echo"链接失败";  exit;  //exit表示退出整个程序

3.写sql语句

$sql = "select * from Info ";

4.执行sql语句

$result = $db->query($sql);  //可以输出一下$result看下它的类型,var_dump($result);输出的是一个Object(对象).

5.操作结果集数据

1)

//$row = $result->fetch_row();   [ $result->fetch_row(); 每执行一次都会取出不同的一条数据 //fetch_row  表示取出一条数据  ]

//fetch_row();返回的是索引数组

while($row = $result->fetch_row())

{

  print_r($row);

  echo"<br / >";

}

2)或者

$attr = $resullt->fetch_all();  //返回$result结果集里的所有数据,返回的是一个二维数组.

3)或者

$result->fetch_assoc();  //返回一条数据,返回的是关联数组

》》练习的代码(通过链接数据库查出数据,做成表格)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<?php
    //造链接对象
    $db =new MySQLi("localhost","root","517","mydb");
    //判断是否出错
    !mysqli_connect_error() or die("连接失败");
    //写sql语句
    $sql = "select * from  Info";
    //执行sql语句
    $result = $db->query($sql);
    //处理查询数据并显示
    echo "<table width=‘100%‘ border=‘1‘ cellspacing=‘0‘ cellpadding=‘0‘>";

    echo"<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>";
    while($row = $result->fetch_row())
    {
        //处理性别(也可以用函数的方法处理)
        $sex = $row[2]?"男":"女";
        //处理民族
        $name = ShowNation($db,$row[3]);
        echo"<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$sex}</td><td>{$name}</td><td>{$row[4]}</td></tr>";
    }
    echo"</table>";

    //做函数处理民族,函数的功能是传入一个代号返回一个名称
    function ShowNation($db,$code)
    {
        //写sql语句
        $sql = "select Name from Nation where Code=‘{$code}‘";
        //执行sql语句
        $result =$db->query($sql);
        $jieguo = $result->fetch_row();
        return $jieguo[0];
    }

?>

</body>
</html>

》》查询数据库,用php实现下拉列表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<select>
<?php

    //造链接对象
    $db =new MySQLi("localhost","root","517","mydb");
    //判断是否出错
    !mysqli_connect_error() or die("连接失败");
    //写sql语句
    $sql = "select * from  Nation";
    //执行sql语句
    $result = $db->query($sql);
    //处理数据并显示
    $attr = $result->fetch_all();  //返回的二维数据

    //遍历二维数组显示出来
    for($i=0;$i<count($attr);$i++)
    {

        list($code,$name) = $attr[$i];
        echo"<option value=‘{$code}‘>{$name}</option>";
    }

?>
</select>
</body>
</html>

备注:每个数据库都有一个用户名,SqlServer里面的超级管理员叫做SA(Super Administrator的简写),指拥有数据库管理最高权限的用户;mysql的超级管理员是root。

执行的sql语句,如果是增删改语句,执行之后返回的结果是true或者false.

快捷键:选中需要移动的代码,按Tab键可以向右移动,shift+Tab:可以向左移动

时间: 2024-08-05 17:30:02

PHP -- 数据库访问的相关文章

公共的数据库访问访问类 SqlHelper.cs

/// <summary> /// 类说明:公共的数据库访问访问类 /// </summary> using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Collections; namespace DotNet.Utilities { /// <summary> /// 

在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreSQL.IBM DB2.或者国产达梦数据库等等,这些数据库的共同特点是关系型数据库,基本上开发的模型都差不多,不过如果我们基于ADO.NET的基础上进行开发的话,那么各种数据库都有自己不同的数据库操作对象,微软企业库Enterprise Library是基于这些不同数据库的操作做的抽象模型,适合多数据

C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]

原文链接 //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration; namespace XXX{    /// <summary>    /// 针对SQL Server数据库操作的通用类           /// </sum

SOCI、LiteSQL、POCO数据库访问类库对比

最近在做视频的开发,其中视频的设备接入管理服务器.流媒体管理服务器.中心服务器都涉及到了数据库的操作,同时需要兼容大多数版本的数据库,包括mysql.sqlite.oracle.公司原来使用的是ado来进行数据库的开发的, 但是考虑到目前需要兼容linux,目前使用Poco框架封装的数据库模块进行开发. 根据项目情况我对soci.litesql.poco这三个框架进行了简单的学习来确定选择那个框架. 1.soci soci是c++数据库访问类库,目前支持MySQL.Oracle.PostgreS

Delphi ADOQuery无法更新定位行问题(其它数据库访问控件类似)

在Delphi中用ADOQuery进行数据库的记录操作时,有时会报 “无法为更新定位行.一些值可能已经在最后一次读取后已更改” 这个错. 这个错通常是 你操作的记录 在数据库中已经被修改过了, 如: 在数据库中已被删除了,你用ADOQuery更新了被删除的记录 数据库表字段有默认值,你用ADOQuery插入新记录后没有重新查询一遍就再次操作该记录 暂时知道的会引起该错误的可能有这两种,归纳起来 就是 ADOQuery的记录 与 数据库 表记录 对应不上 Delphi ADOQuery无法更新定位

一个C#的XML数据库访问类

原文地址:http://hankjin.blog.163.com/blog/static/33731937200942915452244/ 程序中不可避免的要用到配置文件或数据,对于数据量比较小的程序,部署数据库花费的时间就显得浪费了,因此用XML来存储不妨为一个很好的办法,而且结合C#的DataSet,我们可以很轻易的封装出一个代码简单而功能强大的数据访问类XMLConfigconfig.xml<root>  <table1>    <rowName1>hello&l

数据库访问

数据库访问 ★★★   header("location:***.php");//跳转到***.php的页面 ★★★  <a>里面 的onclick事件  先执行onclick事件再执行跳转 ★★★   $db = new MySQLi("localhost","root","密码","表名"); 需要四个参数 php手册(host(连哪儿的数据库,可以写ip地址也可以写域名(如www.baid

Sqlite 数据库访问类

使用Sqlite 作为软件数据库: 实现了数据库访问类 C#  使用System.Data.Sqlite 下载地址: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者Precompiled Statically-Linked Binarie

corejava ---- 对数据库访问能力 2

驱动 ojdbc1.4.jar 1 加载数据库驱动 -->注册驱动 2 建立连接 3 创建一个 statement 4 到客户端执行SQL语句 5 处理返回结果集 (ResultSet) 6 取消联结  释放资源 打开端口号 1521 1 加载驱动  三种方式 Class.forName("oracle.jdbc.driver.OracleDriver"); 2 Driver d = new oracle.jdbc.driver.OracleDriver-->运行时 3 D

打造独立数据库访问的中间服务

随着公司业务的不断变化,几年前的 A 项目和底层 DB_A 数据库华丽转身为核心业务服务和核心数据库. 想从  DB_A  数据库获取数据的 web 服务越来越多,项目之间的关系逐渐演变为下面这样: 很容易看出来按上图这样的发展趋势会存在很多问题(项目关系为个人抽象出来的简化版,实际情况比这要复杂的多). a. 当 webappA 运行过程中出现异常无法访问,webappB/ webappC .... 还能正常获取  DB_A 数据吗? b. 各种各样的提供给 webappB/webappC .