个人自定义一个用户注册类完成数据库的连接和入库:
1.面向对象的思想就是一个动作交给某一个具体的方法去实现
2.通过php连接数据库插入数据前记得设置$pdo->query("SET NAMES utf8"),否则中文插入后会在数据库中显示乱码;
<?php
header("Content-type:text/html;charset=utf-8");
class User{
private $conn;//数据库连接资源
private $error;//数据有效性验证
//公有方法完成调用账户注册
function doreg($arr){
//数据库的连接
$this->conn();
//数据的验证
$yan=$this->validate($arr);
if(!$yan){
echo $this->error;
die();
}
//数据入库
$res=$this->add($arr);
if($res){
echo "数据添加成功!<br>";
}else{
echo "数据入库失败!<br>";
}
}
//数据库连接
private function conn(){
//通过PDO完成数据库的连接
$user='root';
$pwd='';
try{
$this->conn=new PDO('mysql:host=localhost;dbname=test',$user,$pwd);
echo "数据库连接成功!"."<br>";
}catch(PDOException $e){
echo "数据库连接失败!".$e->getMessage()."<br>";
die();
}
}
//表单提交验证
private function validate($arr){
$username=$arr['username'];
$age=$arr['age'];
//验证账号
if(!preg_match('/^[_0-9a-zA-Z]{6,12}$/',$username)){
$this->error="账号输入不合法";
return false;
}
//输入年龄验证
if($age>=1&&$age<=150){
return true;
}else{
$this->error= "年龄输入不合法";
return false;
}
//其他验证省略,哈哈笑哭!
}
//数据插入
private function add($arr){
//设置php插入数据库字符集为utf-8
$this->conn->query("SET NAMES utf8");
$sql="insert into user(username,caname,sex,age,mail,phone)values(?,?,?,?,?,?)";
$stmt=$this->conn->prepare($sql);
$res=$stmt->execute(array($arr['username'],$arr['caname'],$arr['sex'],$arr['age'],$arr['mail'],$arr['phone']));
return $res;
}
}
?>
原文链接:https://blog.csdn.net/living_ren/article/details/78731670
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~