PHP使用prepare(),insert数据时要注意的一点!!!

今天看了PHP防SQL注入,使用预处理prepare,可是我insert数据时,老是插不进去,可是select却能够,弄了好久终于知道原来问题在这里,先上代码php

<?php header('content-type:text/html;charset=utf8');html

//接收表单数据 mysql

//$username = $_POST['username'];sql

$conn = new mysqli('localhost','root','akagami-666','water'); post

if($conn -> connect_errno){  echo "链接失败".$conn -> connect_error; } spa

$sql = "insert into w_safe(name) values(?)"; htm

// $sql = "select * from w_safe where name=?"; mysqli

$stmt = $conn -> prepare($sql); $stmt -> bind_param("s",$username); 变量

$username = $_POST['username']; 表单

$stmt -> execute();

echo $stmt -> affected_rows;

$stmt -> close();

$conn -> close();

出问题的缘由就是,我一开始是先接收post值,定义$username变量,后执行bind_param(),而这就致使没法插入数据,

必需要先写bind_param(),在定义里面的变量才行。

但愿能帮助遇到一样问题的小伙伴!!!

相关文章
相关标签/搜索