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


How to get variable from pdo query? Error showed

>我正在尝试从 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;

请改用:

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);

首先阅读这里 PHP 手册 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
}

将代码更改为如下所示:

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

你可以像这样处理所有结果:

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