PHP PDO,预处理方式(PDOStatement对象)实现 增删改查。防sql注入


PHP PDO,预处理方式(PDOStatement对象)实现 增删改查。防sql注入_第1张图片

demo.php(?号式的预处理sql语句,增删改):

getMessage());
}

//2.预处理的SQL语句
$sql = "insert into stu(id,name,sex,age) values(?,?,?,?)";   // ?号的方式
$stmt = $pdo->prepare($sql);

//3.对?号的参数绑定
//第一种绑定方式
/* $stmt->bindValue(1,null);
$stmt->bindValue(2,'test55');
$stmt->bindValue(3,'w');
$stmt->bindValue(4,22); */

//第二种绑定方式
/* $stmt->bindParam(1,$id);
$stmt->bindParam(2,$name);
$stmt->bindParam(3,$sex);
$stmt->bindParam(4,$age);
$id=null;
$name="test66";
$sex="m";
$age=33; */

//第三种绑定方式
//$stmt->execute(array(null,'test77','22',55));   //第三种绑定方式通过传参数绑定。 索引数组

//4.执行
$stmt->execute();   //第一、二种绑定方式不需要传参数

echo $stmt->rowCount();  //返回受影响的行数
demo.php(别名式的预处理sql语句,增删改):
getMessage());
}

//2.预处理的SQL语句
$sql = "insert into stu(id,name,sex,age) values(:id,:name,:sex,:age)";  //别名的方式
$stmt = $pdo->prepare($sql);

//3.对别名的参数绑定
//(第一种绑定方式)
/* $stmt->bindValue("id",null);
$stmt->bindValue("name",'ceshi1');
$stmt->bindValue("sex",'w');
$stmt->bindValue("age",22);  */

//第二种绑定方式
/* $stmt->bindParam("id",$id);
$stmt->bindParam("name",$name);
$stmt->bindParam("sex",$sex);
$stmt->bindParam("age",$age);
$id=null;
$name="ceshi2";
$sex="m";
$age=33; */ 

//第三种绑定方式
//$stmt->execute(array("id"=>null,"name"=>"ceshi3","sex"=>"w","age"=>66));   //第三种绑定方式通过传参数绑定。 关联数组

//4.执行
$stmt->execute();    //第一、二种绑定方式不需要传参数

echo $stmt->rowCount(); //返回受影响的行数
demo.php(预处理SQL执行查询):
getMessage());
}

//2.预处理的SQL语句
$sql = "select id,name,sex,age from stu";
$stmt = $pdo->prepare($sql);
//3.执行
$stmt->execute();

$stmt->bindColumn(1,$id);   //可以通过1,2,3的方式绑定列
$stmt->bindColumn(2,$name);
$stmt->bindColumn("sex",$sex);  //也可以通过列名的方式绑定列
$stmt->bindColumn("age",$age);

while($row=$stmt->fetch(PDO::FETCH_COLUMN)){
	echo "{$id}:{$name}:{$sex}:{$age}
"; } /* 不通过绑定列的方式,直接进行遍历。 foreach($stmt as $row){ echo $row['id']."--------".$row['name']."
"; } */


你可能感兴趣的:(PHP,MySQL)