当我尝试使用PHP变量进行查询时,PDO查询返回bool(false)

当我尝试使用PHP变量进行查询时,PDO查询返回bool(false),php,mysql,sql,forms,pdo,Php,Mysql,Sql,Forms,Pdo,我试图从$\u POST表单数据中使用PHP变量($key)进行查询,并使用bindParam将参数绑定到变量 foreach ($_POST as $key => $value) { if (isset($value) && is_numeric($value)) { $sql = "SELECT productPrice FROM products WHERE productName=:productName"; $s

我试图从$\u POST表单数据中使用PHP变量($key)进行查询,并使用bindParam将参数绑定到变量

    foreach ($_POST as $key => $value) {
      if (isset($value) && is_numeric($value)) {
        $sql = "SELECT productPrice FROM products WHERE productName=:productName";
        $stmt = $conn->prepare($sql);
        $stmt->bindParam(':productName', $key, PDO::PARAM_STR);
        $stmt->execute();

        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        var_dump($result);
    }

这会在我的页面上返回“bool(false)”,我不知道它为什么会这样做。我确保$key变量与我要查询的SQL表上的数据准确匹配。

您正在将
$key
分配给
$value

foreach($\发布为$key=>$value){

在此之后,您仍然在这一行中使用
$key
而不是
$value

$stmt->bindParam(':productName',$key,PDO::PARAM_STR);

试着用这个

$stmt->bindParam(':productName',$value,PDO::PARAM_STR);


我希望它能帮助您。

PDO在默认情况下不会引发异常,您需要显式配置它。此外,请确保您的PHP环境实际报告错误(例如,尝试打印未定义的变量).BTW,您验证
$value
,然后通过
$key
进行搜索…是的,在$\u POST上的foreach循环中执行此操作似乎很奇怪。您不应该使用$\u POST中的特定值吗?@Devon是的,除了使用foreach循环之外,我不确定是否还有其他方法可以执行此操作。我可能必须找到一种完全不同的方法,但鉴于此,我这是我唯一遇到的问题,我现在更喜欢简单地解决这个问题。我的表单设置方式,$key是表单项,$value是用户输入的数字量。基于用户输入的信息($value),我正在我的SQL表中搜索$key。我现在想不出更好的方法来执行此操作。这是我的设置方式。您的意思是用户将输入
$value
,通过它您可以从数据库中找到
$key
?是的。这是一个简单的发票生成器,用户可以为产品($key)输入数量($value))。根据用户输入的数量,该项目的价格将相应调整,但首先我必须通过查询从SQL“products”表中提取价格。@PooranPatel变量
$value
包含单个值还是多个值?