gpt4 book ai didi

php- 使用 INSERT 调用非对象上的成员函数 bind_param()

转载 作者:行者123 更新时间:2023-11-30 23:09:39 25 4
gpt4 key购买 nike

我是 php/MySQL 的新手,这个错误真的难倒了我。我已经查看了之前有关此错误的问题,但似乎无法弄清楚我做错了什么。我正在绑定(bind)我的参数以防止 SQL 注入(inject)。

相关代码如下:

$into = 'INSERT INTO Orders VALUES (?, ?, ?, ?, ?, ?, ?, ?)';

$name = str_replace("'", "_", $_POST[name]);
$message = str_replace("'", "_", $_POST[message]);
$recipient = str_replace("'", "_", $_POST[recipient]);
$destination = str_replace("'", "_", $_POST[destination]);
$room = str_replace("'", "_", $_POST[roomnumber]);
$anonymous = $_POST[anonymous];
$offcampus = $_POST[off_campus];
$offcampusaddress = str_replace("'", "_", $_POST[offcampusaddress]);

$stmt = $con->prepare($into);
$stmt->bind_param('ssssssss', $name, $recipient, $destination, $room, $message, $anonymous, $offcampus, $offcampusaddress);

bind_param 行是导致错误的行。我知道很多时候这个错误是由于一个小的语法错误引起的,但我似乎找不到任何错误。有什么明显的我想念的吗?这是我第一次运行绑定(bind)参数,所以我可能理解不正确。

最佳答案

主要问题

替换

&offcampus,

$offcampus,

这里...

$stmt->bind_param('ssssssss', $name, $recipient, $destination, $room, $message, $anonymous, &offcampus, $offcampusaddress);
---------------------------------^

次要问题

您用单引号 括起来的$_POST 参数将永远不会 被解析。例如

$anonymous = '$_POST[anonymous]';

替换为

$anonymous = $_POST['anonymous'];

同样,对所有其他变量赋值也执行此操作

关于php- 使用 INSERT 调用非对象上的成员函数 bind_param(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20416547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com