我对php很新,我在学校的最后一年项目有些问题。我有一个问题,使用PHP从Select语句中检索一个整数。 我有2张桌子:
桌子露营:
capacity(int 11)
spot_nb (int 11)
location (varchar 20)
availability (varchar 1) //this can be 'Y' or 'N'
餐桌预订:
reservation_nb (int 10 auto_increment)
spot_nb (int 11)
uin (varchar 8; null)
persons_nb (int 5)
price (int 11)
email (varchar 60)
对于php,我有以下代码:
$query5 = $conn->prepare("SELECT MAX(spot_nb) from camping where capacity=2 and availability='Y'");
$query5->execute();
$result = $query5->fetch(PDO::FETCH_ASSOC);
$id = (int) $result;
从表格露营中获取最大值并使用此代码插入预订
$query6 = $conn->prepare("INSERT INTO reservation (price, persons_nb, email, spot_nb) VALUES (:price, 2, :email, :id);");
$query6-> bindParam(':price', $campingNumber);
$query6-> bindParam(':email', $email);
$query6-> bindParam(':id', $id);
但是每次执行query6时,插入的spot_nb都是1.
谢谢你, 亚历克斯。
答案 0 :(得分:1)
使用fetchColumn()代替fetch()
$query5 = $conn->prepare("SELECT MAX(spot_nb) from camping
where capacity=2 and availability='Y'");
$query5->execute();
$result = $query5->fetchColumn();
$id = (int) $result;
答案 1 :(得分:0)
将您的查询更新为
$query5 = $conn->prepare("SELECT MAX(spot_nb) as spot_nb from camping where capacity=2 and availability='Y'");
$query5->execute();
$result = $query5->fetch(PDO::FETCH_ASSOC);
$id = $result['spot_nb'];