博主信息
博文 12
粉丝 0
评论 0
访问量 15322
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Only variables should be passed by reference 错误处理
留情的博客
原创
1091人浏览过


Strict Standards: Only variables should be passed by reference in D:\myphp_www\PHPTutorial\WWW\ajax\add.php on line 32

报错信息,首先来看一下原来写的

$stmt = $db ->prepare("INSERT `user`(username, email, password) VALUES(?, ?, sha1(?))");
$stmt->bind_param("sss", $username, $email, sha1($password));

看到报错的首先是将报错代码直接复制,然后百度下看看有没有相同经历的,搜索半天,解决方法没找到,倒是学到其他不少东西。没办法,然后翻译下 Only variables should be passed by reference 发现意思是 

只能通过引用传递变量

现在发现

$stmt->bind_param("sss", $username, $email, sha1($password));

sha1($password) 变成一个字符串,而通过sha1加密在预处理中已经加密了,这里进行了重复加密,而bind_param函数支持函数,支持数组,但是不支持字符串。

最后将代码改为

$stmt = $db ->prepare("INSERT `user`(username, email, password) VALUES(?, ?, sha1(?))");
$stmt->bind_param("sss", $username, $email, $password);

运行完全正常

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学