PHP使用prepare(),insert数据时要注意的一点!!!
2024-09-20 20:43:29
今天看了PHP防SQL注入,使用预处理prepare,但是我insert数据时,总是插不进去,但是select却可以,弄了很久终于知道原来问题在这里,先上代码
<?php header('content-type:text/html;charset=utf8');
//接收表单数据
//$username = $_POST['username'];
$conn = new mysqli('localhost','root','akagami-666','water');
if($conn -> connect_errno){ echo "连接失败".$conn -> connect_error; }
$sql = "insert into w_safe(name) values(?)";
// $sql = "select * from w_safe where name=?";
$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(),在定义里面的变量才行。
希望能帮助遇到同样问题的小伙伴!!!
最新文章
- C# 通过Selecnuim WebDriver操作非IE浏览器
- CKEditor 配置
- ";微空间";免费空间很棒哦,很适合中小网站站长
- ffmpeg-20160628-git-bin.7z
- jquery 鼠标经过放大图片
- python3 中自带urllib库可下载图片到本地
- 解读(GoogLeNet)Going deeper with convolutions
- 短随机唯一id生成参考
- Cocos2D-X2.2.3学习笔记12(瞬间动作)
- Delphi中的消息截获(六种方法:Hook,SubClass,Override WndProc,Message Handler,RTTI,Form1.WindowProc:=@myfun)good
- 通过java.util.concurrent写多线程程序
- JavaScript的DOM编程--05--获取文本节点
- jacoco+ant安装部署篇(统计代码覆盖率,适用自动化测试)
- RabbitMQ 高可用之镜像队列
- Javascript面向对象特性实现封装、继承、接口详细案例
- Zabbix监控mysql主从(二)
- passive 的事件监听器(转载)
- Spring Boot中Service用@Transactional 注解
- 我收藏的技术知识图(每张都是大图)关于XX背后的知识、技术图,例如:Linux、Nginx架构、PHP知识卡、机会、HTML5移动、Android系统架构、YII架构的典型流程、Css知识表
- qt Cannot connect creator comm socket /tmp/qt_temp.S26613/stub-socket: No such