如何从pdo查询中获取变量?错误显示

时间:2015-01-16 08:20:20

标签: php pdo

我试图从pdo查询中获取变量,但是我收到了一个错误,无法弄明白。我得到的错误是PDO :: query()期望参数1是字符串,给定对象。

//首先我得到变量,当我回显变量时,我得到了很好的结果。

$id=$_POST("kolicina");

$stmt=$conn->prepare("SELECT Kolicina FROM table1 where Kolicina=$id");

$q=$conn->query($stmt);

while($row = $q ->fetch(PDO::FETCH_ASSOC)){
  $kolicina=$row["Kolicina"];
}

echo $kolicina;

3 个答案:

答案 0 :(得分:2)

改为使用:

id=$_POST("kolicina");

$stmt=$conn->prepare("SELECT Kolicina FROM table1 where Kolicina=:id");

$stmt->execute(array('id' => $id));

:id在执行语句中绑定到$ id。

要获取结果,请使用:

 $stmt->fetch(PDO::FETCH_ASSOC);

答案 1 :(得分:0)

将您的代码更改为:

$stmt=$conn->prepare('SELECT Kolicina FROM table1 where Kolicina = :id');
$array = array('id' => $id);
$stmt->execute($array);

你可以像这样获取所有结果:

$result = $stmt->fetchAll();
   print_r($result);
?>

答案 2 :(得分:0)

首先阅读PHP MANUAL PDO 你做的第二个是错的。

$id = $_POST['yourvarfromform'];
$stmt = $conn->prepare("SELECT * FROM table1 WHERE Kolicina = :id");
$stmt->bindParam(':id', $id, PDO::PARAM_STR) // if it's string you can check on pdo manual because you can use int and others.
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $key => $value {
    // Run Some Code Here
}