结合PHP脚本添加和查询MySQL数据的基本教程
MySQLInsertInto添加数据
INSERTINTO
INSERTINTO语法用于向数据表中添加数据记录。
语法:
INSERTINTOtb_nameVALUES(value1,value2,...)
该语法表示向表中所有的字段按顺序都插入数据记录。
但更多情况下是向指定的列添加记录:
INSERTINTOtb_name(column1,column2,...)VALUES(value1,value2,...)
下面的例子向user表添加一条记录:
<?php
$conn=@mysql_connect("localhost","root","root123");
if(!$conn){
die("连接数据库失败:".mysql_error());
}
mysql_select_db("test",$conn);
mysql_query("setnames'gbk'");//为避免中文乱码做入库编码转换
//mysql_query("setnames'utf8'");//PHP文件为utf-8格式时使用
$password=md5("123456");//原始密码12345经过加密后得到加密后密码
$regdate=time();//得到时间戳
$sql="INSERTINTOuser(username,password,email,regdate)VALUES('小王','$password',
'12345@163.com',$regdate)";
//exit($sql);//退出程序并打印SQL语句,用于调试
if(!mysql_query($sql,$conn)){
echo"添加数据失败:".mysql_error();
}else{
echo"添加数据成功!";
}
?>
如果是表单提交的数据,那么在数据处理页面可以使用$_POST或$_GET接收表单数据而将数据写入数据表。
说明
1.为了避免数据记录因为编码问题无法写入数据表或写入乱码,所以在执行mysql_query()之前,进行了编码转换
2.存储密码为实际密码经过MD5加密,MD5加密不可逆,如要验证密码,只需将用户输入的密码经MD5加密后与数据库密码比对即可
3.在SQL语句中,我们使用单引号''来表示文本字符属性
4.为了调试数据写入数据表中出现的异常,增加了退出程序并打印SQL语句的功能,在需要调试的时候可去掉语句前面的注释,使之生效而便于调试
MySQLSelectfrom查询数据
普通查询
SELECTFROM语法用于从数据表中查询读取数据。
语法:
SELECTcolumn1,column1,...FROMtb_name
如果要读取全部字段,可以使用*号代替字段名:
SELECT*FROMtb_name
例子:
<?php
$conn=@mysql_connect("localhost","root","root123");
if(!$conn){
die("连接数据库失败:".mysql_error());
}
mysql_select_db("test",$conn);
mysql_query("setcharacterset'gbk'");//避免中文乱码字符转换
mysql_query("setcharacterset'utf8'");//PHP文件为utf-8格式时使用
$sql="SELECT*FROMuser";
$result=mysql_query($sql);//得到查询结果数据集
//循环从数据集取出数据
while($row=mysql_fetch_array($result)){
echo"用户名:".$row['username']."<br/>";
echo"电子邮件:".$row['email']."<br/>";
echo"注册日期:".date("Y-m-d",$row[regdate])."<br/><br/>";
}
?>
浏览器输出:
用户名:admin
电子邮件:admin@5idev.com
注册日期:2010-08-06
用户名:小明
电子邮件:xiao@163.com
注册日期:2010-07-02
用户名:Jack
电子邮件:jack@gmail.com
注册日期:2010-07-02
用户名:小王
电子邮件:12345@163.com
注册日期:2010-11-13
说明
1.使用mysql_query("setcharacterset'gbk'")来避免读取数据的中文乱码
2.mysql_query()得到的是数据集资源(Resource),需要用mysql_fetch_array()函数来取得
3.使用while循环来逐行取得全部数据