gpt4 book ai didi

PHP MySQL 查询其中 x = $variable 来自函数

转载 作者:行者123 更新时间:2023-11-29 04:16:11 24 4
gpt4 key购买 nike

为什么这不起作用:

function listOrderComments ($factnr){
global $connection;

//$factnr = 123; //or $factnr = "123"; (Both work)

$query = "SELECT * FROM orderstatus WHERE factuurnummer = '$factnr'";
$result = mysqli_query($connection, $query);

当我回显 $factnr 时,我得到“123”。

当我取消注释 //$factnr = 123; 时,我的功能正常工作。

到处寻找解决方案。检查类型 $factnr 是(字符串)。

最佳答案

好吧,如果您在查询中使用了一个变量,那么您就是在为一个变量打开注入(inject)攻击的大门。

如果您要使用该变量,我建议您使用 bind_param 进行查询

阅读下面的 PHP 手册链接,您将能够找出问题所在

http://php.net/manual/en/mysqli-stmt.bind-param.php

如果您将一个变量传递给您的函数,那么它应该已经设置好了,所以我不明白您为什么要将它设置为 123。因此执行 sql 语句并按照 PHP 文档页面上的第一个示例绑定(bind)参数。

public function listOrderComments ($factnr)
{
global $connection;
$query = "SELECT * FROM orderstatus WHERE factuurnummer = ?";
$sql->prepare($query);
$sql->bind_param("s", $factnr);
$sql->execute();
$result = $sql->get_result();
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

foreach ($data as $row) {
print_r($row);
}
}

然后对结果做你想做的

关于PHP MySQL 查询其中 x = $variable 来自函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936095/

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