PHP学习笔记:在php中访问MySQL数据(一些简单的例子)

说明:代码来源《PHP和MySQL Web应用开发》一书,还有就是代码有些是经过修改的,经过我的测验全部都可以用

这是数据库部分代码

//创建数据库
create database MySQLDB;

//使用数据库
use mysqldb;

//向数据库中插入表格
create table Employees(EmpName varchar(50) primary key,DepName varchar(50),Salary integer);

//修改列名
alter table employees change column DepName Title varchar(50);

//增加列
alter table employees add column DepName varchar(50);

//向表格插入数据
insert into Employees values(‘张三‘,‘部门经理‘,6000,‘人事部‘);
//插入出错,在插入前加set names gbk;  就ok了;http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html
//错误提示,Incorrect string value:"\XX \XX \XX \XX \XX"for column ‘XXX‘ at row 1

ALTER DATABASE database_name CHARACTER SET GBK;(修改database)
ALTER DATABASE mysqldb CHARACTER SET GBK;
//不可行

insert into Employees values(‘李四‘,‘职员‘,3000,‘人事部‘);
insert into Employees values(‘王五‘,‘职员‘,3500,‘服务部‘);
insert into Employees values(‘赵六‘,‘部门经理‘,6500,‘开发部‘);
insert into Employees values(‘高七‘,‘职员‘,2500,‘开发部‘);
insert into Employees values(‘马八‘,‘职员‘,3100,‘人事部‘);
insert into Employees values(‘钱九‘,‘部门经理‘,5000,‘财务部‘);
insert into Employees values(‘孙十‘,‘职员‘,2800,‘财务部‘);

删除列:alter table 表名 drop column 列名;

CreateTable.php  使用php在MySQL中创建表

<?PHP
    //创建数据库之后用这代码去创建表users
    $conn = mysqli_connect("localhost", "root", "123456", "MySQLDB");
    if (empty($conn)) {
        die("mysqli_connect failed: " . mysqli_connect_error());
    }
    //执行CREATE TABLE 语句
    $sql = "CREATE TABLE IF NOT EXISTS Users (UserName VARCHAR(50) PRIMARY KEY, UserPwd VARCHAR(50), ShowName VARCHAR(50))";
    $conn->query($sql);
    // 关闭连接
    mysqli_close($conn);
?>

FetchData.php  在网页中显示MySQL数据库中表的内容示例

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<?PHP

    $conn = mysqli_connect("localhost", "root", "123456", "MySQLDB");
    if (empty($conn)) {
        die("mysqli_connect failed: " . mysqli_connect_error());
    }
    mysqli_query($conn, "SET NAMES utf8");
    // 查询Employees中的员工数据
    $sql = "SELECT EmpName, Title, Salary FROM Employees";
    $results = $conn->query($sql);
    // 循环处理结果集中的记录
    while($row = $results->fetch_row())  {
        print($row[0] . "  " . $row[1] . "  " . $row[2] . "<BR>");
    }
    $results->free();
    // 关闭连接
    mysqli_close($conn);
    /*
    乱码问题:
    加 <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″> 和 mysqli_query($conn, "SET NAMES utf8");
    来统一编码,from:http://jingyan.baidu.com/article/77b8dc7fcae06e6174eab6ba.html
    */
?>

multi-query.php  使用$conn->multi_query()函数同时执行两个select语句的示例

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<?php
    $conn = mysqli_connect("localhost", "root", "123456", "MySQLDB");
    if (empty($conn)) {
        die("mysqli_connect failed: " . mysqli_connect_error());
    }
    mysqli_query($conn, "SET NAMES utf8");
    $query = "SELECT EmpName FROM Employees;";
    $query .= " SELECT DepName FROM Departments;";
    if ($conn->multi_query($query)) {
        do {
            if ($result = $conn->store_result()) {
                while ($row = $result->fetch_row()) {
                    echo($row[0] . "<br>");
                }
                $result->close();
            }
        } while ($conn->next_result());
    }
    $conn->close();
    /*
    使用multi_query()函数同时执行两个select语句,分别查询员工姓名和部门名称
    */
?>

viewPage.php  php分页显示MySQL数据中表记录的代码示例

<HTML>
<HEAD><TITLE>分页显示记录</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
</HEAD>
<BODY>
<?PHP
    // 获取当前页码
    $page = $_GET[‘page‘];
    if($page == 0)
        $page = 1;

    $PageSize = 3;        // 为了演示分页效果,
    // 连接到数据库
    $conn = mysqli_connect("localhost", "root", "123456", "MySQLDB");
    if (empty($conn)) {
        die("mysqli_connect failed: " . mysqli_connect_error());
    }
    // 设置中文字符集
    mysqli_query($conn, "SET NAMES utf8");
    //执行SELECT 语句,获取表Employees的记录总数
    $sql = "SELECT COUNT(1) FROM Employees";
    $results = $conn->query($sql);
    $row = $results->fetch_row();
    $RecordCount = $row[0];
    //////////////
    // 计算总页数//
    /////////////
    if( $RecordCount ){
        //如果记录总数量小于每页显示的记录数量,则只有一页
        if( $RecordCount < $PageSize ){
            $PageCount = 1;
        }
        //取记录总数量不能整除每页显示记录的数量,则页数等于总记录数量除以每页显示记录数量的结果取整再加1
        if( $RecordCount % $PageSize ){
            $PageCount = (int)($RecordCount / $PageSize) + 1;
        }
        else {    //如果没有余数,则页数等于总记录数量除以每页显示记录的数量
            $PageCount = $RecordCount / $PageSize;
        }
    }
    else{  // 如果结果集中没有记录,则页数为0
        $PageCount = 0;
    }
    echo("<BR>当前页码 :" . $page . "/" . $PageCount);

?>
<table width="449" border="1">
  <tr>
    <td>员工姓名</td>
    <td>职务</td>
    <td>工资</td>
  </tr>
<?PHP
    // 循环显示当前页的记录
    $sql = "SELECT EmpName, Title, Salary FROM Employees LIMIT " . ($page-1) * $PageSize . "," . $PageSize;
    $results = $conn->query($sql);
    while($row = $results->fetch_row())  {
        echo("<tr>");
        echo("<td>" . $row[0] . "&nbsp;</td>");
        echo("<td>" . $row[1] . "&nbsp;</td>");
        echo("<td>" . $row[2] . "&nbsp;</td>");
        echo("</tr>");
    }
    // 关闭连接
    mysqli_close($conn);
    // 显示分页链接
    if($page == 1)
        echo("第一页 ");
    else
        echo(" <a href=viewPage.php?page=1>第一页</a> ");
    // 设置“上一页”链接
    if($page == 1)
        echo(" 上一页 ");
    else
        echo(" <a href=viewPage.php?page=" . ($page-1) . ">上一页</a> ");
    // 设置“下一页”链接
    if($page == $PageCount)
        echo(" 下一页 ");
    else
        echo(" <a href=viewPage.php?page=" . ($page+1) . ">下一页</a> ");
    //设置“最后一页”链接
    if($page == $PageCount)
        echo(" 最后一页 ");
    else
        echo(" <a href=viewPage.php?page=" . $PageCount . ">最后一页</a> ")
?>
</table>
</BODY>
</HTML>

截图:

时间: 2024-10-20 12:15:22

PHP学习笔记:在php中访问MySQL数据(一些简单的例子)的相关文章

MySQL学习笔记——5.PHP中操作MySQL

1.连接 ①使用MySQL的mysql_connect进行连接 $conn = mysql_connect('主机','用户','密码'); 注意:若MySQL的端口被设置为3307 则mysql_connect("localhost:3307","用户","密码") $sql = 'use 库名'; mysql_query($sql,$conn); mysql_query("SET NAMES UTF8"); ②其他连接方法

MySQL学习笔记-操作数据表中的记录

MySQL学习笔记-操作数据表中的记录 1.插入记录 INSERT INSERT [INTO] tbl_name [(col_name,...)] {VAULES|VALUE} ({expr|DEFAULT},...),(...),... 例,插入单条记录: mysql> USE testDatabase changed mysql> CREATE TABLE users(    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,   

MVC4 学习笔记 之 URL中存在编译的空格 20%20%

/Config/Edit/QQCC%20%20%20%20%20%20%20 原因是: 通过EF直接添加了空格? NO 是因为你的数据库字段设计问题,因为你当然设计如>:sID nchar(10) 那你一定想输入10个字符,但实际你只输入了必个,所以后面数据自动帮你补空了. 从EF数据库取出数据,在绑定的时候为安全,编码了,所以显示%20,代表一个空格. MVC4 学习笔记 之 URL中存在编译的空格 20%20%,布布扣,bubuko.com

Guava学习笔记:guava中的Preconditions使用

Guava学习笔记:guava中的Preconditions使用 转载:http://outofmemory.cn/java/guava/base/Preconditions google guava的base包中提供的Preconditions类用来方便的做参数的校验,他主要提供如下方法: checkArgument 接受一个boolean类型的参数和一个可选的errorMsg参数,这个方法用来判断参数是否符合某种条件,符合什么条件google guava不关心,在不符合条件时会抛出Illeg

【学习笔记】jQuery中的动画与效果

1.基本效果 匹配元素从左上角开始变浓变大或缩小到左上角变淡变小 ①隐藏元素 除了可以设置匹配元素的display:none外,可以用以下函数 hide(speed,[callback])  返回值:jQuery  参数-speed:三种预订速度之一的字符串String(slow,normal,fast)或表示动画时长的毫秒数Number  callback:在完成动画时执行的函数,每个匹配元素执行一次 slow=600毫秒  normal=400毫秒  fast=200毫秒 以优雅的动画隐藏所

Guava学习笔记:guava中对字符串的操作

Guava学习笔记:guava中对字符串的操作 转载:http://outofmemory.cn/java/guava/base/Strings 在google guava中为字符串操作提供了很大的便利,有老牌的判断字符串是否为空字符串或者为null,用指定字符填充字符串,以及拆分合并字符串,字符串匹配的判断等等. 下面我们逐一了解这些操作: 1. 使用com.google.common.base.Strings类的isNullOrEmpty(input)方法判断字符串是否为空        

Linux学习笔记——vmware plarer中安装ubuntu

1.前言 学习了很长时间ubuntu,在旧笔记中安装过lubuntu,也使用过他人安装好的ubuntu虚拟机(contiki2.6和contiki2.7).熟悉了ubuntu之后,决定自己尝试通过vmware player安装ubuntu. [1]vmware plaryer是免费软件,不存在破解问题.如果用来学习ubuntu完全足够了. [2]建议在虚拟机种学习ubuntu,等完全熟练之后再摆脱windows.ubuntu现在还没有有道笔记,QQ等工具,总感觉网上世界少了点什么. [3]在虚拟

学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中

试验模拟导出Oracle 11G数据库中数据文件坏块中表中的数据 以前一直以为dul对应的版本只能恢复最高的数据库版本一致,今天测试发现dul 10可以恢复11g最新版的数据库.模拟环境 SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition

cocos2dx学习笔记(4)——VS2010中的中文乱码问题

当你想使用中文时,你是否有这样的一个困惑. 把样例中的HelloWorld改成中文的 "你好,世界!". 然后编译运行,发现居然是个乱码!!! 因为cocos2dx中使用的是UTF-8字符集,而VS中确实ANSI. 所以我们需要对其进行字符集转换. 然后纵里寻它求百度,终于找到了解决方案. 一个函数搞定! #include "cocos2d.h" char* toUTF(const char* strGB2312) { int iLen = MultiByteToW