当我尝试使用PHP变量进行查询时,PDO查询返回bool(false)
我试图从$\u POST表单数据中使用PHP变量($key)进行查询,并使用bindParam将参数绑定到变量当我尝试使用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
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
包含单个值还是多个值?