首先要知道我们需要那些来结合数据使用.
当然,PHP的话,默过于MYSQL了.
由于使用的是UTF-8格式,请确保需要自学的朋友确认自己的MYSQL字符是UTF-8,如果不是,请照http://www.qingxinzui.com/?p=1071来修改.
再来是,通讯录里需要的数据.作者这来写的数据需要为:
编号/名字/性别/电话/地址
需要的功能:
修改/删除通讯录里的联系人,增加联系人,修改管理员密码.
在这说明下,使用编号,是因为可以更方便的找出MYSQL的位置,而且是唯一的.
当然,你也可以使用MYSQL里的自增方法.作者是没去试MYSQL自增的语句.
首先是一个主页
<?php
#index.php
header(“Content-Type:text/html;charset=utf-8”);
$config=’config.php’; //检查配置文件是否存在
if(file_exists($config)) //如果文件存在
{
require_once(“inc.config.php”);
//验证是否已经登陆
require_once(“contacts.php”);
//进入联系人管理页面
echo “</br>”;
echo “<center>© <a href=’http://www.qingxinzui.com/’ target=’_blank’>清心醉</a></center>”;
}
else //文件不存在进入安装模式.
{
echo “进入安装模式 </br>”;
echo “<a href=’install.php’>开始安装</a>”;
}
?>
# require_once(“inc.config.php”);
//验证是否已经登陆
require_once(“contacts.php”);这两个稍后会讲
首先程序查看有无配置文件config.php.
如果没有进入install.php安装文件.
<?php
#install.php
header(“Content-Type:text/html;charset=utf-8”);
$config=’config.php’;
if(file_exists($config))
{
echo “配置文件已存在,请删除删除config.php文件进行重新安装.”;
echo “<script>setTimeout(\”this.location=’index.php’\”,2000);</script>”;
exit;
}
?>
<html>
<title>通讯录安装向导</title>
<body>
<form method=”post” action=”installsql.php”>
<table width=”400″ align=”center”>
<tr>
<td>MYSQL数据库地址:</td>
<td><input name=”adder” type=”text” size=”30″ maxlength=”500″ value=”localhost”></td>
</tr>
<tr>
<td>MYSQL数据库帐号:</td>
<td><input name=”user” type=”text” size=”30″ maxlength=”500″ value=”root”></td>
</tr>
<tr>
<td>MYSQL数据库密码:</td>
<td><input name=”password” type=”password” size=”30″ maxlength=”500″></td>
</tr>
<tr>
<td>创建的数据库名称:</td>
<td><input name=”sqlname” type=”text” size=”30″ maxlength=”500″ value=”qingxinzui”></td>
</tr>
<tr>
<td>管理员帐号:</td>
<td><input name=”adminuser” type=”text” size=”30″ maxlength=”500″ value=”admin”></td>
</tr>
<tr>
<td>管理员密码:</td>
<td><input name=”adminpassword” type=”text” size=”30″ maxlength=”500″ value=”admin”></td>
</tr>
</table>
<div align=”center”><input type=”submit” value=”安装”></div>
</form>
</body>
</html>
//如果配置文件存在,表示已经安装成功
//如果要重新安装,删除config.php文件即可.可以避免重复安装的危险
也许你会问,config.php是什么?怎么没有呢?
别急,通过install.php表单提交的内容,数据库创建成功后,就有了
<?php
#installsql.php
header(“Content-Type:text/html;charset=utf-8”);
$config=’config.php’;
if(file_exists($config))
//如果配置文件存在,表示已经安装成功
{
echo “配置文件已存在,程序已成功安装.”;
echo “<script>setTimeout(\”this.location=’index.php’\”,2000);</script>”;
exit;
}
$hostname=$_POST[“adder”];
$sqluser=$_POST[“user”];
$sqlpassword=$_POST[“password”];
$con = mysql_connect($hostname,$sqluser,$sqlpassword);
//接收$_POST过来的数据,组成SQL连接语句并赋值给$con
//mysqli_set_charset($con,”utf8″);
/********************数据库连接开始********************/
if(!$con) //如果$con里的SQL语句失败(即连接错误)
{
die(‘无法连接: ‘ .mysql_error()); //提示错误.
exit;//退出中止.
}
else
{
echo “连接数据库成功</br>”;
/********************数据库连接结束********************/
/********************数据库创建开始********************/
$sqlname=$_POST[“sqlname”]; //数据名
$adminuser=$_POST[“adminuser”];//管理员帐号
$adminpassword=$_POST[“adminpassword”];//管理员密码
echo “需要创建的数据库名字为: $sqlname 请稍后…</br>”;
if(!mysql_select_db($sqlname,$con)) //如果$sqlname数据库连接不上表示不存在
{
mysql_query(“set character set ‘utf8′”); //编码
mysql_query(“set names ‘utf8′”);
$query=”CREATE DATABASE $sqlname”; //SQL创建数据库命令’CREATE DATABASE’+数据名
$result=mysql_query($query); //实行mysql_query返回结果集中一个字段的值
//连接并创建数据库
echo “创建数据库 $sqlname 成功”;echo “</br>”;
echo “开始创建表数据</br>”;
mysql_select_db($sqlname,$con); //选择数据库
mysql_query(“set character set ‘utf8′”); //编码
mysql_query(“set names ‘utf8′”);
$insqlcontacts = “CREATE TABLE contacts
(id int(11)NOT NULL unique,names varchar(64),
sex varchar(64),phone varchar(256),
address varchar(256))”;
//创建表contacts,数值别设置那么大,否则会提示:
//Specified key was too long; max key length is 767 bytes
if(!mysql_query($insqlcontacts,$con)) //判断创建表
{
die(‘创建表失败: ‘.mysql_error()); //提示错误.
}
mysql_query($insqlcontacts,$con);
$o=”ALTER TABLE ‘contacts’ ADD PRIMARY KEY(‘names’)”;//设置主键
mysql_query($o,$con);
echo “创建contacts表成功</br>”;
echo “开始为contacts表写入用户初始化数据</br>”;
mysql_query(“INSERT INTO contacts(id,names,sex,phone,address)
VALUES(‘1′,’清心醉’,’男’,’138238′,’中国广东省梅州市’)”);
//默认写入数据:编号,名字,性别,电话,地址
/************表字段****************/
$insqladmin = “CREATE TABLE admin(user varchar(64),password varchar(64)NOT NULL unique)”;//写入管理员帐号密码表
if(!mysql_query($insqladmin,$con)) //判断创建表字段
{
die(‘创建表失败: ‘.mysql_error()); //提示错误.
}
mysql_query($insqladmin,$con);
echo “创建admin表成功</br>”;
$o1=”ALTER TABLE ‘admin’ ADD PRIMARY KEY(‘password’)”;//设置主键
mysql_query($o1,$con);
echo “开始为admin表写入用户初始化数据</br>”;
mysql_query(“INSERT INTO admin(user,password)VALUES(‘$adminuser’,'”.md5($adminpassword).”‘)”);
mysql_close($con); echo “关闭MySql连接</br>”;
//在这的'”.md5($adminpassword).”‘为实现md5加密
echo “创建配置文件开始</br>”;
//创建个配置文件
$f1='”‘;$f2=’;’;//符号变量
$counter_file = ‘config.php’; //创建个配置文件
$fopen=fopen($counter_file,’wb’); //新建
fputs($fopen,”<?php”.”\n”);
fputs($fopen,”\$localhost=”.$f1.$hostname.$f1.$f2.”\n”);//写入数据库地址数据
fputs($fopen,”\$user=”.$f1.$sqluser.$f1.$f2.”\n”);//写入数据库用户数据
fputs($fopen,”\$password=”.$f1.$sqlpassword.$f1.$f2.”\n”);//写入数据库密码数据
fputs($fopen,”\$con=mysql_connect(“.”\$localhost”.”,”.”\$user”.”,”.”\$password”.”)”.$f2.”\n”);//写入为$con连接sql
fputs($fopen,”\$sqlname=”.$f1.$sqlname.$f1.$f2.”\n”);//写入数据库名
fputs($fopen,”mysql_select_db(“.”\$sqlname”.”,”.”\$con”.”)”.$f2.”\n”);
fputs($fopen,”mysql_query(“.$f1.”set charater set’utf8′”.$f1.”)”.$f2.”\n”);//编码
fputs($fopen,”mysql_query(“.$f1.”set names ‘utf8′”.$f1.”)”.$f2.”\n”);
fputs($fopen,”?>”);
fclose($fopen);
echo “创建配置文件结束</br>”;
echo “<script>setTimeout(\”this.location=’index.php’\”,3000);</script>”;
exit;
}
else
{
echo “数据库 $sqlname 已存在”;
echo “</br>”;
echo “<a href=’install.php’>返回</a>”;
exit;
}
}
?>
#从install.php提交的表单到installsql.php,通过连接数据库等处理.如果成功,则输出基本的config.php配置.(作者为了区分是操作数据库还是页面内的简单内容,文件名后面的sql.php就是判断了.这样要修改也简单点.)
然后我们来看看,配置连接MYSQL的config.php文件内容
<?php
$localhost=”localhost”;
$user=”root”;
$password=””;
$con=mysql_connect($localhost,$user,$password);
$sqlname=”qingxinzui”;
mysql_select_db($sqlname,$con);
mysql_query(“set charater set’utf8′”);
mysql_query(“set names ‘utf8′”);
?>
#一般自己编写PHP的话,都会自己创建个连接MYSQL的文件.可是如果在不同的环境,MYSQL数据配置可能不同,比如说是否root用户,当然大部分人都是这个了.那password呢?当然也是可以修改数据库的文件.那管理员的密码呢?又不是自己设置,要编写者提供或者进入数据库里修改,那就很麻烦了.所以自创建配置文件是最好的.当然可能还有其他更好的办法,作者也只是自学的,在没有完全接触以前,不敢100%说怎么好.
关于作者