• PHP与数据库


    连接数据库 Connect

    访问数据库的数据之前,先要与数据库建立连接,使用mysql_connect()方法与数据库建立连接。

    mysql_connect()参数

    <?php
        //servername: 要连接的服务器。默认是 "localhost:3306"。
        //username: 登录数据库的用户名。默认值是拥有服务器进程的用户的名称。
        //password: 登录数据库的密码。默认是 ""。
        mysql_connect(servername,username,password);
    ?>

    连接数据库与关闭数据库连接的示例

    <?php
        //建立连接,返回连接
        $con = mysql_connect("localhost","root","123456");
        //如果连接失败,显示错误信息
        if (!$con){
            die('Could not connect:'.mysql_error());
        }
        echo "<h5>Connect Successful!!!</h5>";
        //关闭数据库连接
        mysql_close($con);
        echo "<h5>Connect Closed!!!</h5>";
    ?>

    创建数据库 Create Database

    在此之前我们先要简单介绍一下mysql_query()这个方法,看起来它是一个查询方法,因为方法名里有一个query,但其实大部分的数据库操作下我们都会用到这个方法。

    mysql_query()方法是用来向MySQL连接发送命令的。

    我们现在试着来打开数据库连接,然后新建一个数据库,然后再关闭连接。

    <?php
        //建立连接
        $con = mysql_connect("localhost","root","123456");
        //失败的情况
        if (!$con){
            die('Could not connect: ' . mysql_error());
        }
    
        //新建数据库
        if (mysql_query("CREATE DATABASE my_db",$con)){
            echo "Database created";
        }else{
            echo "Error creating database: " . mysql_error();
        }
    
        //关闭连接
        mysql_close($con);
    ?>

    创建数据表 Create Table

    在能够建立到数据库的连接并且创建了我们自己的数据库以后,我们可以开始试着创建我们自己的数据表。

    我们现在创建一张Persons表,它记录了人的 姓、名和年龄。

    这里需要注意的是,我们在创建表之前首先要对我们需要操作的数据库进行选择,让计算机知道我们要对哪个数据库进行操作。

    所以这里存在一个选取即select的问题,我们使用mysql_select_db()方法来进行选择

    <?php
        //建立连接
        $con = mysql_connect("localhost","root","123456");
        if (!$con){
            die('Could not connect: ' . mysql_error());
        }
    
        //新建数据库
        if (mysql_query("CREATE DATABASE my_db",$con)){
            echo "Database created";
        }else{
            echo "Error creating database: " . mysql_error();
        }
    
        //选择数据库
        mysql_select_db("my_db", $con);
        
        //构造新建table的sql语句
        $sql = "CREATE TABLE Persons (
                    personID int NOT NULL AUTO_INCREMENT,
                    PRIMARY KEY(personID),
                    FirstName varchar(15),
                    LastName varchar(15),
                    Age int
                )";
        //向连接发送命令
        mysql_query($sql,$con);
        
        //关闭连接
        mysql_close($con);
    ?>

    增加新纪录 INSERT INTO

    我们新增一条记录,仍然使用mysql_query()方法

    我们给之前我们创建的Persons数据表新增一条记录

    <?php
        mysql_query(" INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Larry', 'Carlton', '65') ");
    ?>

    也可以换一种方式,先构造sql语句再执行,这样可以提高代码的优雅性

    <?php
        $sql = " INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Larry', 'Carlton', '65') ";
        mysql_query($sql, $con);
    ?>

    而且我们往往要考虑到失败的情况,并且在操作成功的时候要给出一点提示,无论是log信息还是其他的什么提示都好

    <?php
        $sql = " INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Larry', 'Carlton', '65') ";
        
        if (!mysql_query($sql, $con)){
            die('Error: ' . mysql_error());
        }
        echo "1 record added";
    ?>

    我们甚至可以直接把表单提交的数据通过$_POST或者$_REQUEST读取出来并且直接存入数据库

    <?php
        $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ( '$_POST[firstname]', '$_POST[lastname]', '$_POST[age]' )";
        
        if (!mysql_query($sql, $con)){
            die('Error: ' . mysql_error());
        }
        echo "1 record added";
    ?>

    查询 Select

    我们查询出来的数据结果是一个集合,保存在一个数组变量当中,如果我们要逐行读取,那么就要去循环遍历,如果我们要指定读取,那么我需要一个index

    mysql_fetch_array()就是这样一个方法,在这个方法内部有一个指针,每当我们读取一个,指针就跳向下一条数据,通过这种方式,我们把所有的数据都读出来

    <?php
        $result = mysql_query("SELECT * FROM Persons");
    
        while($row = mysql_fetch_array($result)){
            echo $row['FirstName'] . " " . $row['LastName'];
            echo "<br />";
        }
    ?>

    修改数据 UPDATE

    掌握了之前的知识点,update操作就只不过是换一条sql语句的问题了

    <?php
        mysql_query("UPDATE Persons SET Age = '60' WHERE FirstName = 'Larry' AND LastName = 'Carlton'");
    ?>

    删除数据行 DELETE FROM

    删除一行数据也同样简单

    <?php
        mysql_query("DELETE FROM Persons WHERE LastName='Carlton'");
    ?>

    ODBC

    我们的数据源不一定是MySQL,也有可能是Oracle或者MS Access之类的,这个时候我们需要进行一些ODBC操作

    不过好在我们有了对数据库操作的基础,数据库的操作总体来说还是大同小异的

    无非就是这么几个阶段

    1.建立连接

    2.新建数据库

    3.选择数据库

    4.执行sql命令

    5.获取查询结果

    6.关闭连接

    那么按照这个顺序,我们来看一看ODBC都有哪些方法去和数据库打交道

    建立连接(连接到ODBC数据源)

    mysql_connect() vs odbc_connect()

    <?php
        odbc_connect("local","root","123456");
    ?>

    执行sql语句

    mysql_query($sql, $con) vs odbc_exec($con, $sql)

    <?php
        $sql="SELECT * FROM Persons"; 
        $rs=odbc_exec($conn,$sql);
    ?>

    获取记录

    <?php
        //MySQL方式
        mysql_fetch_array($rs);
        //ODBC方式
        odbc_fetch_row($rs);
    ?>

    从记录中读取字段

    <?php
        //通过index读取
        $firstname=odbc_result($rs,1); 
        //通过key获取value
        $age=odbc_result($rs,"age");
    ?>

    关闭连接

    <?php
        //MySQL方式
        mysql_close($con);
        //ODBC方式
        odbc_close($con);
    ?>
  • 相关阅读:
    总结DataTable,DataSet的使用方法。
    关闭子窗口刷新父窗体
    mysql中优化thread_concurrency的误区
    多看书
    shell导出mysql所有用户权限
    调整max_allowed_packet的大小
    Unknown table 'a' in MULTI DELETE的解决办法
    linux借助expect完成自动登录
    mysql的tmp_table_size和max_heap_table_size
    中英文职位对照
  • 原文地址:https://www.cnblogs.com/zcynine/p/5140112.html
Copyright © 2020-2023  润新知