使用php从MySql获取整数

时间:2015-06-08 13:44:35

标签: php mysql pdo

我对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.

谢谢你, 亚历克斯。

2 个答案:

答案 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'];