gpt4 book ai didi

php - 内爆数组并搜索匹配 mysql php

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

我正在尝试获取一个数组并将其内爆,然后通过 mysql 查询运行它以在我的数据库中搜索匹配项。如果有匹配,我想返回匹配的值。它不断返回 false,我不知道为什么。我执行了 vardump 并可以看到数组在那里,但似乎没有传递给 mysql_query。如果我手动将数组放入查询中,它就没有问题。有什么想法吗?

我的数组(这来 self 的 Android 应用程序):

$refids = (jdu23764js84, 2746272jsjs7f, 39823874hbsjsk)

PHP脚本代码:

public function searchList($refids) {
$refarray = array($refids);
$comma_separated = implode(',', $refarray);
$result = mysql_query("SELECT `ref_id` FROM `main` WHERE `ref_id` IN
({$comma_separated})");
if ($result == true){
$result = mysql_fetch_array($result);
return $result;
} else {
return false;
}

最佳答案

您忘记引用 $refids 中的各个值,因此您正在构建

... WHERE `ref_id` IN (jdu23764js84, 2746272jsjs7f, ...)

MySQL 将它们解释为字段名称。换句话说,您正遭受 SQL 注入(inject)攻击漏洞,并且您完全缺乏对数据库代码的任何错误处理,导致无法看到 mysql 试图告诉您的错误:

$csv = implode("','", $refarray);
^-^-- note the addition of the quotes:

$sql = "SELECT .... `ref_id` IN ('{$csv}')";
^------^--- again, note the quotes

这可以在短期内解决问题。从长远来看,您需要阅读http://bobby-tables.com并了解它要告诉您什么。

关于php - 内爆数组并搜索匹配 mysql php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818022/

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