当前位置: 首页 > 知识库问答 >
问题:

致命错误:未捕获的PDOException:SQLState[42S22]:找不到列

袁成化
2023-03-14

我目前在一个项目上工作,它显示一个配方,配料在一个公式中检查。我快到最后了,但我真的不明白我的错误是什么。如果有人能向我解释:

致命错误:未捕获的PDOException:SQLState[42S22]:找不到列:1054/homepages/30/d675437312/htdocs/assets/recettemalin/recettemalin/recettemelectionnee.php:55堆栈跟踪:#0/homepages/30/d675437312/htdocs/assets/recettemalin/recettemelectionnee.php(55):pdo->查询(“SELECT Dist...”)中的“where clause”中的未知列“$IDIngredit”#1{main}抛出在/homepages/30/d675437312/htdocs/assets/recettemalin/recetteselectionnee.php第55行

下面是我的代码,它阻止了:

if (isset($_POST['ingredients'])) {
        $idingredient = implode(",", $_POST['ingredients']);
        echo $idingredient.'<br>';
        $recette = $bdd->query('    SELECT DISTINCT r.*
                                    FROM ingredient i
                                    INNER JOIN contient c
                                       ON i.id_i = c.id_i
                                    INNER JOIN recette r
                                       ON c.id_r = r.id_r
                                    WHERE i.id_i IN ($idingredient)');
    while ($donnees = $recette->fetch()) {
        echo $donnees['nom_r'];
        echo $donnees['type_r'];
        echo $donnees['description'];
    }
}

当我回显$IDIngredient时,我得到了一个成分的id列表,如下所示:6、9、11、12、1、5,但它似乎不被where子句喜欢,我想知道为什么?

共有1个答案

微生毅
2023-03-14

这对于一个评论来说太长了。

首先,参数化查询。不要只是将随机字符串转储到查询中,因为这会导致语法错误。

第二,您的具体问题是,您正在放入一个字符串,但没有字符串分隔符。因此,该值被解释为标识符--特别是列别名。我不推荐这种解决方案,但where I.id_1 IN('$IDIngreatent')很可能符合您的要求。

第三,不要使用in与单个值进行比较。这是误导。此外,该值是单个值,即使它有逗号。.“butter,margarine”是一个值,其中有逗号,而不是两个值。

 类似资料:
  • 我收到了以下错误消息: 致命错误:未捕获错误:在F:\projects\websites\main\u website\app\Exceptions\Handler中找不到类“Auth”。php:65堆栈跟踪:#0 F:\projects\websites\main\u website\vendor\laravel\framework\src\illighted\Foundation\Http\K

  • 我得到这个错误。我创建了一个按钮来更新表。当我点击按钮时,我得到一个错误。如何修复它? 致命错误:Uncaught ArgumentCounter错误:函数personel::update_form(),0的参数太少,在C:\xampp\htdocs\warehouse\panel\system\core\CodeIgniter中传递。php在第360行,C:\xampp\htdocs\wareh

  • 我现在必须学习通过fire base编写移动应用程序web服务。我点击了这个链接:https://firebase-php.readthedocs.io/en/stable/ 在我的核心网站中,我创建web服务文件夹,然后创建我的fire。php文件。这个文件代码在这里, 我得打电话给我的支持档案:https://github.com/kreait/firebase-php/ 但我还是得到了一个:

  • 尝试在我的stripe帐户上提交测试付款时,我遇到以下错误: 致命错误:未捕获错误:在/home/dh#u y3rvc7/vvnow.dreamhosters.com/wp-content/plugins/wp-Stripe-integration/includes/process payment.php:25堆栈跟踪:#0/home/dh#uy3rvc7/vvnow.dreamhosters.c

  • 我在进行贝宝支付时出现了经验错误。 致命错误:未捕获异常“PayPal\exception\PayPalConnectionException”,消息为“访问https://api.sandbox.paypal.com/v1/payments/payment时获得Http响应代码400”。在C:\xampp\htdocs\paypal\workload\third_party\vendor\pay

  • 我有这个MVC文件夹结构: 现在,在ProfileController.php中,我有: 在usermodel.php中,我有: 并使用Composer Psr4 I自动加载文件: 现在,当我需要路由我的URL时,我会采取行动: 我看到这个错误: >致命错误:未捕获错误:在C:\XAMPP\HTDOCS\CMS\Application\Catalog\Controller\ProfileContr