PHP MYSQL——做完成绩单打印系统后的总结

为了赶进度,14、15、16这三个晚上的时间都用在做这个系统上,白天上课。

之前没有什么PHP和数据库的基础,都是一些浅浅修修补补的功力,或者套一些PHP框架。终于,遇到了这个需要靠自己写的系统了。做的时候很苦逼,15号早上5点半睡,16号早上6点半,记得天都亮了,8点半还要上全天的课,看来熬夜功力不减当年。但对我来说,做出来就相当于跨出了一步,开始从几乎为0的基础自顾自的研究起PHP和MYSQL来。系统做出来,再把BUG改一改,满满的成就。

作为一名前端人员,意识到学习PHP和MYSQL的必要性,虽然是一些皮毛。不光是自己能做个小项目。还有一方面,更能明白与自己交互的后端在做什么,更好地和后端合作,理解后端人员。另一方面,为了项目的最优!

做完这个项目,一直都很想总结一下通过PHP使用MySQL。那就一步一步自己写一遍吧!


基础

PHP环境就不说啦~我们老师都会!


PHP MySQL 连接

mysql_connect(主机,  用户, 密码);

创建一个conn.php

<?php

 // 请输入您的主机
 $host = 'localhost';
 // 请输入您的主机用户名
 $db_name = 'root';
 // 请输入您的主机密码
 $db_psw = '';

 $link = mysql_connect($host, $db_name, $db_psw);

 if (!$link) {
 die('连接失败' . mysql_error() . '<br>');
 } else {
 echo '连接成功' . '<br>';
 }

?>

这里要说明下:

(1)die():输出一条信息,并退出当前脚本。

(2)mysql_error():返回错误信息文本,是对于上一个MYSQL函数的错误文本,如果没有错误返回空字符串。

(3)页面编码:如果不出意外的话,执行之前的代码结果是这个样的:

页面乱码 为什么呢?!为什么呢?!

有经验的人肯定知道——编码问题= =。 加上这么一句:

 // 页面编码
 header('Content-type: text/html; charset=utf-8');

PHP MySQL 创建数据库、数据表

CREATE DATABASE 数据库名

createdb.php

<?php

 // 页面编码
 header('Content-type: text/html; charset=utf-8');

 // 请输入您的主机
 $host = 'localhost';
 // 请输入您的主机用户名
 $db_name = 'root';
 // 请输入您的主机密码
 $db_psw = '';

 $link = mysql_connect($host, $db_name, $db_psw);

 if (!$link) {
 die('连接失败' . mysql_error() . '<br>');
 } else {
 echo '连接成功' . '<br>';
 }

 // 创建一个数据库 (transcripts-成绩单)
 $create_db_name = 'transcripts';
 $create_db = mysql_query('CREATE DATABASE ' . $create_db_name);
 if ($create_db) {
 echo '创建数据库' . $create_db_name . '成功' . '<br>';
 } else {
 echo '创建失败' . mysql_error() . '<br>';
 }

?>

(1)这里的.意思是实现串接,如果是.=就是串接赋值。

看结果:

数据库列表

CREATE TABLE 表名

createtable.php

<?php

 // 页面编码
 header('Content-type: text/html; charset=utf-8');

 // 请输入您的主机
 $host = 'localhost';
 // 请输入您的主机用户名
 $db_name = 'root';
 // 请输入您的主机密码
 $db_psw = '';

 $link = mysql_connect($host, $db_name, $db_psw);

 if (!$link) {
 die('连接失败' . mysql_error() . '<br>');
 } else {
 echo '连接成功' . '<br>';
 }

 // 创建数据表
 $create_table_name = 'table2';
 $create_table = mysql_query('CREATE TABLE ' . $create_table_name . '(
 test0 int NOT NULL AUTO_INCREMENT,
 test1 varchar(15),
 test2 int(1),
 PRIMARY KEY(test0)
 )');
 if ($create_table) {
 echo '创建表' . $create_table_name . '成功' . '<br>';
 } else {
 echo '创建表失败' . mysql_error() . '<br>';
 }

?>

然后,我就在想啊:

(1)为什么结果不是我想要的呢?

创建表失败

没有选取数据库,要在创建之前:

  // 选取数据库
 $create_db_name = 'transcripts';
 mysql_select_db($create_db_name);

成功咯!

(2)新的疑问,如果没有创建列的情况?

 // 创建数据表
 $create_table_name = 'table3';
 $create_table = mysql_query('CREATE TABLE ' . $create_table_name);
 if ($create_table) {
 echo '创建表' . $create_table_name . '成功' . '<br>';
 } else {
 echo '创建表失败' . mysql_error() . '<br>';
 }

结果: 创建失败-至少一列

还是老老实实创建至少一列吧。。。。

(3)数据类型

自己看表去,百度MySQL数据类型。我只记得常用的这几个,其它的了解下。

(4)主键字段

什么是主键字段呢?

它,通常是ID号,每个表都用有一个主键字段,用于对表中的行进行唯一标志。


完成绩单打印系统的优化

下次分享,敬请期待。

麻凯倩

微信:makaiqian