PHP 数据库MySQL的使用

前言:
最近刚接触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://upload-images.jianshu.io/upload_images/188188-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://upload-images.jianshu.io/upload_images/188188-343f3902e8540064.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

执行完语句之后,可以直接在phpMyAdmin(在MAMP--webStart的页面中)中查看

![p6-2.png](http://upload-images.jianshu.io/upload_images/188188-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://upload-images.jianshu.io/upload_images/188188-0dc827d9bba6f3b4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

导出:这里要分清楚导出的是数据库还是数据表,不然会遇到像 导出p3.png 图所示的错误。

![导出p1.png](http://upload-images.jianshu.io/upload_images/188188-1c7d38f6a4fc77b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![导出p2.png](http://upload-images.jianshu.io/upload_images/188188-76f82a04d87ed147.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![导出p3.png](http://upload-images.jianshu.io/upload_images/188188-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。非常简单粗暴。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容