构建一个工具,首先提取 SIM 卡号码,然后将其标记为已使用。第一部分工作得很好,并通过 ajax 提供给我的页面。第二部分似乎不想工作。
include_once 'inc/db_connect.php';
$stmt = $db->query('SELECT sim FROM p2p WHERE taken = 0 ORDER by id ASC LIMIT 1');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result = $row['sim'];
}
echo json_encode($result);
$stmt = $db->prepare("UPDATE p2p SET taken = 1 WHERE sim = ?");
$stmt->bind_param('i', $result);
$stmt->execute();
任何想法!
最佳答案
就是因为这个 bind_param()
即MySQLi_*语法并且您正在使用 PDO .
fetch(PDO::FETCH_ASSOC)
- 使用 PDO
bindParam()
功能
这两个 API 不能混合使用。
如果这不起作用,请使用 bindValue()
添加$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
连接打开后。这将发出错误信号。
见解
我在 a previous question 中注意到您发布了,您正在使用 mysqli_*
用于连接到数据库的函数。
$result = mysqli_query($conn, $query);
如果情况仍然如此,那么您不能将 PDO 与 mysqli_
混合使用以任何方式、形状或形式。
- 这些 MySQL API 不会相互混合。
- 咨询:http://php.net/manual/en/mysqlinfo.api.choosing.php
关于php - PDO 选择然后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150728/