Php PDO未获取行结果

Php PDO未获取行结果,php,mysql,pdo,Php,Mysql,Pdo,我使用我的旧mysql脚本,并试图将其转换为更安全的PDO格式。在我的旧脚本中,我从表中运行了一个SELECT字段,然后将其放入变量中 $Product=$row['Product'];并运行IF和ELSE语句。如果用户产品=索尼,我想回应“你可能也对这些感兴趣”,下面是我的示例代码 <?php $connect = mysql_connect("host","username","password"); mysql_select_db("dbname"); $username = $_

我使用我的旧mysql脚本,并试图将其转换为更安全的PDO格式。在我的旧脚本中,我从表中运行了一个SELECT字段,然后将其放入变量中 $Product=$row['Product'];并运行IF和ELSE语句。如果用户产品=索尼,我想回应“你可能也对这些感兴趣”,下面是我的示例代码

<?php
$connect = mysql_connect("host","username","password");
mysql_select_db("dbname");

$username = $_SESSION['username'];

$q = "SELECT product FROM users WHERE username = ('$username')";

$r       = mysql_query($q);
$row     = mysql_fetch_assoc($r);
$Product = $row['product'];

if($Product == "sony")
{
  echo "You may be interested in these as well"; 
}
?>

如果product=“sony”echo”消息,如何通过PDO和将所选表格中的字段“product”传递给变量

我也试着用这个来代替这些陈述,但没有成功

<?php
$query = $db->query("SELECT product FROM users  WHERE username = '$username'");
$query->execute();

$Product = $query ->fetchAll(PDO::FETCH_ASSOC);

$Product = $getProduct['product'];

if($Product == "sony")
{
    echo "You may be interested in these as well"; 
}

?>
使用

获得1行和

$query->fetchAll(PDO::FETCH_ASSOC);
获取所有行


您需要一行,所以使用第一行。

难怪第三行不起作用<代码>$getproduct
不存在。谢谢!我像你说的那样用了第一个,效果很好!此外,我还确保定义$getProduct。再次感谢你!
$query->fetch(PDO::FETCH_ASSOC);
$query->fetchAll(PDO::FETCH_ASSOC);