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