美文网首页PHPPHP实战
PHP 数据库MySQL的使用

PHP 数据库MySQL的使用

作者: Hing0000 | 来源:发表于2017-04-08 15:46 被阅读146次

    前言:
    最近刚接触php,记录一下学习的过程。其中遇到过的坑希望对你们有帮助。

    文章目录

    1、有关数据库的简介
    2、安装的工具与环境
    3、创建数据库的方式
    4、文章发布系统
    5、遇到的小坑

    1、有关数据库的简介:

    a、先附上一张有关数据库整理的知识:


    MySQL.jpg

    b、介绍一下数据库中:DATABASE TABLE COLUMN ROW 的关系

    关系表p1.jpg

    例如:DATABASE可以包含有多个TABLE,TABLE中包含COLUMN、ROW。就好比一个Number中有多个表,表里有行和列。如图关系表p2。

    ![关系表p2.png](http:https://img.haomeiwen.com/i188188/6ea3b489994974c9.png?
    imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    2、安装的工具与环境:

    1、Mac
    2、MAMP (Apache、MySQL、PHP),安装请自行搜索
    3、PhpStorm.

    3、创建数据库的方式

    一、使用PhpStorm工具创建数据库

    1、MAMP 开启服务
    2、在PhpStorm 中view --- Tool Windows --- Database

    p2.png

    3、选择 " + " 添加MySQL

    p3.png

    4、MySQL 配置

    p4

    Name: 可以随意起
    Host Port User Passoword 要根据自己实际情况设置,点击MAMP中的WebStart可以查看具体的设置。

    p4.png

    5、最后点击Test Connection测试连接是否成功

    p5-1.png

    我在使用的时候遇到了一个错误:java.net.ConnectException: Connection refused
    发现是MAMP的设置有问题:检查一下 是否有勾选了 Allow network access to MySQL

    p5-2.png

    6、设置完成后,开始创建数据库了。

    1、创建数据库
    2、创建表(只是创建表,表将会有什么内容,此时并没有内容)
    3、更新/插入。内容是从这步创建的
    4、才可以使用....

    开始使用SQL语句进行操作,具体SQL语句解释可以在参考

    CREATE DATABASE userinfo;
    USE userinfo;
    # #创建数据库中的表
    CREATE TABLE myInfo(sid VARCHAR(12),sname VARCHAR(20), sage INT);
    # # 添加语句
    INSERT myInfo (sid, sname, sage) VALUES ('123456','hing',18);
    #
    # # 查询语句
    SELECT * FROM myInfo;
    # # 更新语句
    UPDATE myInfo SET sage = 28 WHERE sname = 'hing';
    # #删除语句(删除一个名为samoy的学生)
    # DELETE FROM myInfo WHERE sid = '123456';
    # DROP DATABASE userinfo;CREATE TABLE myInfo(sid VARCHAR(12),sname VARCHAR(20), sage INT)
    ````````
    
    可以在执行的SQL语句后面  command + enter键,选在单条执行。
    
    ![p6-1.png](http:https://img.haomeiwen.com/i188188/343f3902e8540064.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    执行完语句之后,可以直接在phpMyAdmin(在MAMP--webStart的页面中)中查看
    
    ![p6-2.png](http:https://img.haomeiwen.com/i188188/95743b3365cb3d9a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ######这里顺便介绍phpMyAdmin 管理数据库 (导入导出操作)
    
    导入 ,选择已经处在的数据库,如果导入的数据表,则要在数据库下添加才可以。(在我的demo中有导出了“文章发布系统”的数据库([info.sql.zip](https://github.com/A-Hing/PutArticle/blob/master/info.sql.zip)),有兴趣可以试试)
    ![导入p1.png](http:https://img.haomeiwen.com/i188188/0dc827d9bba6f3b4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    导出:这里要分清楚导出的是数据库还是数据表,不然会遇到像 导出p3.png 图所示的错误。
    
    ![导出p1.png](http:https://img.haomeiwen.com/i188188/1c7d38f6a4fc77b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ![导出p2.png](http:https://img.haomeiwen.com/i188188/76f82a04d87ed147.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    ![导出p3.png](http:https://img.haomeiwen.com/i188188/bc3a5c5c89b655e1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    
    #####二、使用代码创建数据库
    
    ```
    <?php
    /**
     * Created by PhpStorm.
     * User: a-hing
     * Date: 2017/4/4
     * Time: 下午11:03
     */
    
    //数据库连接,test是数据库的名字,使用完成之后注意关闭数据库连接
    $con = mysqli_connect("localhost","root","root");
    if (!$con)
    {
        die('Could not connect: ' . mysqli_error($con));
    }
    
    //创建数据库
    if (mysqli_query($con,"CREATE DATABASE userinfo"))
    {
        echo "Database created";
    }
    else
    {
        echo "Database created error: " . mysqli_error($con);
    }
    
    //使用该数据库
    mysqli_select_db($con,"userinfo");
    
    //1、创建表  2、 插入数据 (不重复创建)
    if(!mysqli_query($con, "SELECT * FROM yourInfo")) {
        //创建表
        $sql = "CREATE TABLE yourInfo (sid varchar(12),sname varchar(20),sage int)";
        mysqli_query($con,$sql);
    
        //向表中插入数据
        $insert = "INSERT yourInfo (sid, sname, sage) VALUES ('123456','sam',18)";
        mysqli_query($con, $insert);
    }
    
    //从表中查询数据
    $query = "SELECT * FROM yourInfo";
    $result = mysqli_query($con, $query);
    
    while($row = mysqli_fetch_array($result))
    {
        echo "\n".$row['sid']."\t".$row['sname']."\t".$row['sage']."\n";
    }
    
    //最后关闭数据库连接
    mysqli_close($con);
    ```
    
    
    ###4、文章发布系统
    
    这里推荐一个相关的demo - “文章发布系统” [教程](http://www.imooc.com/learn/116),有讲解,有源码。可以很好的巩固了数据库的相关操作。
    
    我自己也跟着demo练习了一遍 有兴趣参考我的[demo](https://github.com/A-Hing/PutArticle)
    不同之处有:
    1、多处的mysql_query更换成mysqli_query。
    2、文章的id换成了article_id。
    3、修改了某些的SQL语句。
    4、添加了注释。添加了注释。添加了注释
    
    
    #####最后附上遇到过的问题:
    1、[You don't have permission to access /MAMP/ on this server](https://www.drupal.org/node/645574)
    2、echo打印不出表单的内容,看看[echo print() print_r() var_dump()的区别](http://www.cnblogs.com/tylerdonet/p/3702527.html)
    3、遇到调试不出来的环境问题,不妨重启MAMP的server或者重启电脑,你会有意外的收获。
    4、php  $_POST 获取表单信息为空,是因为phpstorm默认63342端口,把端口号改成你服务器的端口号就可以,如:MAMP默认是8888。
    5、如果遇到中文入库乱码的话,建议直接安装数据库工具修改encoding。非常简单粗暴。
    
    
    
    

    相关文章

      网友评论

      • 零一间:采用参数绑定的方式好一些,可以省去一些安全方面的部分顾虑。:blush::blush:
        Hing0000:谢谢指点,往后我去了解一下。

      本文标题:PHP 数据库MySQL的使用

      本文链接:https://www.haomeiwen.com/subject/qsmaottx.html