php mysql数据保存到数据库实现方法

作者:袖梨 2022-06-24

1. 创建一个数据库连接
2. 发送一些不是必须的语句
3. 选择一个存储的数据库
4. 编写数据库插入语句
5. 发送这个语句
先看数据结构

 代码如下 复制代码

--------------------------------------

--
-- 表的结构 `guest`
--

CREATE TABLE IF NOT EXISTS `guest` (
  `id` int(11) NOT NULL auto_increment COMMENT '客户自增id',
  `name` varchar(16) NOT NULL COMMENT '客户名称',
  `email` varchar(60) default NULL COMMENT '电子信箱',
  `qq` varchar(11) default NULL COMMENT 'QQ号码',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--
-- 导出表中的数据 `guest`
--


-- --------------------------------------------------------

--
-- 表的结构 `post`
--

CREATE TABLE IF NOT EXISTS `post` (
  `id` int(11) NOT NULL auto_increment COMMENT 'post主键',
  `guest_id` varchar(11) NOT NULL COMMENT '发布人id',
  `post` text NOT NULL COMMENT '发布内容',
  `post_time` varchar(14) NOT NULL COMMENT '发布时间',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--
-- 导出表中的数据 `post`
--


--


详细的分析也就这么五个步骤了,那么我们开始第一步吧,利用PHP提供的内置函数mysql_connect来创建一个数据库链接,这个函数需要三个参数,格式如下:

Mysql_connect(‘数据库所在的主机’,’链接数据库的用户名’,’链接数据库的密码’)。这个函数返回一个数据库连接资源号。

看我们在post.php中的链接代码:

 代码如下 复制代码

 $con=mysql_connect('localhost','root','root') or die('链接数据库失败!');
mysql_query('set names utf8');
mysql_select_db('GuestBook');

第一行创建一个数据库连接,把资源号赋给变量$con,如果连接失败,结束程序的执行输出提示信息“链接数据库失败!”。

第二行发送一个字符集设定语句,让数据在数据库中的出入都使用utf8字符集。这个语句是可有可无的,其中的语句可以写成set names gbk或者set names gb2312等等我们需要的字符集。

第三行利用PHP提供的mysql_select_db函数来选择我们要使用的数据库。

值得注意的是,mysql_query这个函数本身有两个参数:第一个参数就是我们要发送的数据库执行语句sql,第二个参数是数据库连接的资源编号,如果第二个参数没有指定的话,那么程序就会查找最近一个链接资源,也就是说这个参数不是必须的。我们以上包括将来的写法都是没有第二个参数的,按照程序的上下文我们第二行的语句可以写作:
mysql_query(“set names utf8”,$con)这样也是正确的。

这个函数的返回值是布尔型的,如果语句成功执行就返回true否则返回false——了解这一点很重要。

好,到此为止我们的数据库连接已经就绪,开始组装我们的sql插入语句,看一下代码(post.php 第67-76行):

 代码如下 复制代码

 $insertSql="insert into guest (name,qq,email) values ('$name','$qq','$email')";
if(mysql_query($insertSql)){
 $guestid = mysql_insert_id();
}
else{
 echo $insertSql;
 echo mysql_error();
 echo "数据插入失败!";
 exit();
}

在这个片段的第一行中我们组建了一个sql的插入语句,这个看来没什么可说的,唯一点就是把变量写进这些语句并且用引号包裹起来——对于数字型的不需要引号。

第二句发送语句,并判断是否被成功执行。
这个地方需要说明:PHP中if判断中的语句是会被执行的,例如if($c=$a+$b)这样的语句被执行的顺序是,先计算里面的语句然后再对结果作出判断。所以执行之后$c的值是$a,$b之和,判断的时候是对$c作出的判读。

所以在这个地方if判断的是mysql_query($insertSql)的返回结果,语句已经发送到了数据库。

第三行出现的函数mysql_insert_id——获取最近一次插入数据的时候自增序列的值,我们这里获取的是guest表中的id,因为只有这个id才是自增的。以备后用。

这个片段的第五行到最后都是进行的错误处理,如果语句没有被成功执行,那么就执行这些程序,倒数第二行的exit();函数的意思是终止程序向下执行。

这时候我们已经把guest信息保存到了Mysql的GuestBook的guest表中了


看一下post.php文件

 代码如下 复制代码

//把以上插入取得的客户id和留言信息插入到post表中
$post_time = time();
$insertPostSql = "insert into post(guest_id,post,post_time) values('$guestid','$post','$post_time')";
if(mysql_query($insertPostSql)){
 echo <<  
tem;
}
else{
 echo <<  
tem;
}

相关文章

精彩推荐