1、首先你得有一个存储这些数据的数据库表,比如数据库表的结构是这样的。
数据库表名为:user
字段:编号(id),姓名(name),手机(mobile),产品名称(productName) 主键为id
2、实现你需要的功能:
第一步:你需要连接数据库,有一个连接数据库的文件:conn.php。内容如下:
// 我假设你的数据库是mysql的,假设你的数据库用户名为root,密码为123456,根据你数据库的实际情况改写成你的。数据库名称假设为db_889888658
<?php
$conn=mysql_connect("localhost","root","123456") or die("数据库连接失败,请检查用户名或密码")
mysql_select_db("db_889888658",$conn)
mysql_query("SET NAMES 'gb2312'")
?>
第二步:你需要一个添加数据的表单,就相当于一个注册或添加数据的页面。如文件为:add.html内容如下:
<form action="reg.php" method="post">
<input type="text" name="name"><br/>
<input type="text" name="mobile"><br/>
<input type="text" name="productName"></br>
<input type="submit" name="submit" value="添加数据">
</form>
第三步:写一个处理你表单提交的数据的文件reg.php。内容如下:
<?php
include "conn.php"
if(isset($_POST["submit"])){
$name=$_POST["name"]
$mobile=$_POST["mobile"]
$productName=$_POST["productName"]
$sql="INSERT INTO 'user'(id,name,mobile,productName) VALUES (NULL,$name,$mobile,$productName)"
$query=mysql_query($sql)
$num=mysql_affected_rows($conn)
if($num>=1){
echo "<script>alert('数据添加成功')location.href='add.html'</script>"
}else{
echo "<script>alert('数据添加失败')history.back()</script>"
}
}
?>
第四步,第三步已经实现你说的第一个功能。下面说一下你的第二个功能。写一个表单,输入你要查询的手机号,点击“查询”按钮查询你想要的字段。
<?php
if($_POST["submit"]){
$mobile=$_POST["mobile"]
if(!empty($mobile)){
include "conn.php"
$sql="SELECT * FROM 'user' WHERE 'mobile'='$mobile'"
$query=mysql_query($sql)
while($rs=mysql_fetch_array($query)){
$str="查询结果:<br/>"
$str.="用户名:".$rs["name"]." "
$str.="产品名:".$rs["name"]." "
}
echo "您查询的手机号为".$mobile."的数据信息如下:<br/>"
echo $str
}else{
echo "请输入手机号"
}
}
?>
<form action="" method="post">
请输入您要查询的手机号:<input type="text" name="mobile"><input type="submit" name="submit" value="查询">
</form>
打开phpstorm,打开Database窗口,如下图:配置mysql连接,如下图:
填写mysql地址,用户名,密码,如果没有安装驱动,要先安装驱动
测试数据库能否连接成功:
保存配置,保存时,会提示设置密码:
读取数据库表,及根据条件查询修改:
$a=a:1:{s:4:"type"s:1:"2"}$b=unserialize($a)
print_r($b)
序列化serialize()与反序列化unserialize():
序列化serialize():就是将一个变量所代表的
“内存数据”转换为“字符串”的形式,并持久保存在硬盘(写入文件中保存)上的一种做法,即,把“内存数据”转换为“字符串”然后保存到文件中;
反序列化unserialize():就是将序列化之后保存在硬盘(文件)上的“字符串数据”恢复为其原来的内存形式的变量数据的一种做法,即,把文件中保存的序列化后的“字符串数据”恢复为“内存数据”;
对象的序列化:1.对一个对象进行序列化,只能将其属性数据“保存起来”,而方法被忽略(方法不是数据),但是类名也能被保存起来,因此反序列化的位置只要有该类文件,就仍然可以将对象还原,即该对象的属性和方法依然可以使用;
2.对象序列化的时候,会自动调用该对象所属类的__sleep()魔术方法;
对象的反序列化:1.对一个对象进行反序列化,其实是恢复原来保存起来的属性数据,而且,此时必须需要依赖该对象原来的所属类;
2.对象反序列化的时候,会自动调用该对象所属类的__wakeup()魔术方法;
总结:一般当我们需要将数据保存到文件中时会用到序列化,保存到数据库中一般不这样用,因为序列化和反序列化的过程其实很耗时
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)