我试图从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;
答案 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
}