之前没有什么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号,每个表都用有一个主键字段,用于对表中的行进行唯一标志。
完成绩单打印系统的优化
下次分享,敬请期待。