PHP与MySQL交互使用详解


Posted in PHP onOctober 09, 2006

PHP与MySQL交互使用详解
1、创建自动连接数据库的代码,并生成一些必要的代码.我们仔细研究一下数据库的连接函数,会发现是这样的一行代码。
$link_id=@mysql_connect($hostname,$username,$password);
所以我们在include文件connect.inc中添加以下代码就可以了。connect.inc<?php$hostname='localhost';
$username='phpstar';$password='phpstar';$dbname='script';
$tablename='php_script';$link_id=mysql_connect($hostname,$username,$password);
if (! $link_id){ echo '<html><head><title>Error</title></head><body>';
echo 'Connection to PHP has failed.';echo '</body></html>';exit(); }?>
把这个程序加入到每个PHP脚本中,这样当脚本运行时就建立了数据库连接。因为我们的程序具有交互性,我们要处理用户输入的信息,所以在该文件中还应该加入以下代码.
<?php//接着上面的代码//加入一个处理输入信息的代码,并生成一个数组备用$arr_request=array();/*定义数组*/
if (count($HTTP_GET_VARS)) /*如果用户信息以GET方式输入,则读数据*/
{ while (list($key, $value) = each ($HTTP_GET_VARS)) /*函数list()与each()配合处理输入数据*/
{ $arr_request[strtolower($key)] = $value; } }
/*函数strtolower()将起区分作用的key字串转为小写,这样对后面的编程有好处,并把他们组成数组*/
if (count($HTTP_POST_VARS)) /*用户信息以POST方式输入*/
{ while (list($key, $value) = each ($HTTP_POST_VARS))
{ $arr_request[strtolower($key)] = $value; } } //我们还要定义每次输出的HTML
function html_header($title){ echo '<html><head><title>';echo "$title";
echo '</title></head><body bgcolor="#CCCCCC">'; }function html_footer()
{ global $link_id;@mysql_close($link_id);echo '</body></html>';}//还有一个出错信息处理
function html_error_exit($msg){ $errno = mysql_errno(); /*得到错误信息代码*/
$error = mysql_error(); /*得到错误信息,两者一起起排错作用*/
echo '<html><head><title>Error</title></head><body>';echo $msg;
echo "<br>Error: ($errno) $error<br>";echo '</body></html>';exit(); }?>
好了!我们把一些常用的代码放在了这里,用起来就方便了2、 创建数据库表这有两种方法:在DOS环境下输入命令,但容易出错哦.
利用程序,就算出错,修改起来也容易.我们用程序来创建数据表.因为我们的程序要有普遍性,所以表中的字段并不重要,这里我们只是简单的创建一个.该表具有以下管理字段:
key_script 这是一个有自动增量的字段,它保证表中的纪录都是独一无二的.date_created 这是一个日期字段,储存该纪录创建的时间
data_updated 这也是日期字段,储存该纪录最后一次更新的时间
flag_deleted 储存该纪录是否被删除,"Y":该纪录已被删除,"N":该纪录没删除,可使用具有以下储存信息的字段.script_name 程序名称
script_size 程序字节数script_describe 程序的简单说明author_name 程序作者名author_email 程序作者的email
author_homepage 程序作者的主页下面建立该程序:createTable.php<?phprequire('connect.inc');
$str_sql="create table php_script(
key_script int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
date_created datetime DEFAULT '0000-00-00 00:00:00',
date_updated datetime DEFAULT '0000-00-00 00:00:00',
flag_deleted enum('Y','N') DEFAULT 'N' NOT NULL,
script_name VARCHAR(20) NOT NULL,script_size VARCHAR(10) NOT NULL,
script_describe VARCHAR(200) NOT NULL,author_name VARCHAR(20) NOT NULL,
author_email VARCHAR(20) NOT NULL,author_homepage VARCHAR(30) NOT NULL,
primary key (key_script))";$result=mysql_db_query($dbname,$str_sql,$link_id);
if ($result){echo"ok! Table $tablename has been created!";}else{echo"Failed!";}
?>OK! 我们的表建好了!3、生成插入纪录代码程序。似乎我们应该先把纪录显示出来,然后才插入纪录,但因为我们还没有纪录,所以把这一步提到前面来。
首先、创建一个HTML表单,以便用户输入相关信息。其次、创建能插入表单信息的MySQL代码。好! 我们开始,表单样式如下:程序名:文件大小:程序描述:作者名:
作者邮件地址:作者的主页:能插入表单信息的MySQL代码如下:script_insert_action.php<?php
require('connect.inc');if($arr_request['action']=='insert'){
$current_date=date('Y-m-d H:i:s');/*把当前时间按YYYY-MM-DD HH:MM:SS方式排列*/
/*下面要动态生成SQL代码,其中我们定义的自动增量的字段由MySQL自己产生*/
/*另外flag_deleted字段的却省值是"N",所以这两项都不需要我们在这里特别提出来*/
/*大家都知道:PHP严格区分单引号(')、双引号(")的作用。而我们的作者名等在数组内*/
/*我们要这样引用数组:$arr_request['author_name'],注意这里有单引号(')*/
/*而我们在输入insert语句的值时应该这样:VALUES('$current_date') */
/*如果我们不去处理这些分号,就会出现这种情况:VALUES('$arr_request['author_name']') */
/*这种情况PHP能处理好吗?当然不能,所以我们的想方法来处理它*//*这里,我们用下面这种技术来避免这个问题;当然这里还有其它的方法。您先想想吧!*/
$script_name=$arr_request['script_name'];
$script_size=$arr_request['script_size'];
$script_describe=$arr_request['script_describe'];
$author_name=$arr_request['author_name'];
$author_email=$arr_request['author_email'];
$author_homepage=$arr_request['author_homepage'];/*这样一替换,处理时就好多了*/
$str_sql="insert into $tablename(date_created,date_updated,script_name,
script_size,script_describe,author_name,author_email,author_homepage)VALUES(
'$current_date','$current_date','$script_name','$script_size',
'$script_describe','$author_name','$author_email','$author_homepage')";
$result=mysql_db_query($dbname,$str_sql,$link_id);/* 下面给用户简单的信息反馈 */
if (!$result){html_error_exit('MySQL插入命令失败!');}else(html_header('成功');
echo"<center> ";echo('MySQL插入命令成功');echo"<br> ";echo"html_footer();)?>
OK! 插入纪录功能完成!

PHP 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
php合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
php实现通过ftp上传文件
Jun 19 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
3种平台下安装php4经验点滴
Oct 09 #PHP
多重?l件?合查?(二)
Oct 09 #PHP
文章推荐系统(三)
Oct 09 #PHP
多重?l件?合查?(一)
Oct 09 #PHP
推荐文章系统(一)
Oct 09 #PHP
资料注册后发信小技巧
Oct 09 #PHP
文章推荐系统(二)
Oct 09 #PHP
You might like
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
javascript标签在页面中的位置探讨
2013/04/11 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
javascript中clone对象详解
2014/12/03 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python中处理unchecked未捕获异常实例
2015/01/17 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python 解压pkl文件的方法
2018/10/25 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
python机器学习实现决策树
2019/11/11 Python
Python urllib.request对象案例解析
2020/05/11 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
给海归自荐信的建议
2013/12/13 职场文书
护士自我鉴定总结
2014/03/24 职场文书
抗洪救灾标语
2014/10/08 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
党校党性分析材料
2014/12/19 职场文书
2015年仓库工作总结
2015/04/09 职场文书
狂人日记读书笔记
2015/06/30 职场文书
nginx之queue的具体使用
2022/06/28 Servers