php - PDO 选择然后更新

标签 php pdo

构建一个工具,首先提取 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)


这两个 API 不能混合使用。

如果这不起作用,请使用 bindValue()

添加$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);连接打开后。这将发出错误信号。


见解

我在 a previous question 中注意到您发布了,您正在使用 mysqli_*用于连接到数据库的函数。

$result = mysqli_query($conn, $query);

如果情况仍然如此,那么您不能将 PDO 与 mysqli_ 混合使用以任何方式、形状或形式。

关于php - PDO 选择然后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150728/

相关文章:

php if 语句 html 选项值

使用 cPanel 运行 CentOS 的 VPS 服务器上的 PHP CLI "Out of memory"错误

php - echo ( float )12,3;与 echo (float )"12,3"; - 为什么不同?

PHP Location Header 忽略哈希

mysql - 通过 MySQL 套接字与 Zend Framework 连接

php - 尝试执行 INSERT 命令时 PDO 不起作用

mysql - 使用 Laravel 5 设置 Mariadb

php - PHP高级搜索

php - MYSQL 使用 PDO 在不存在的地方插入

php - 在 SQL Server 上使用 PDO 时,为什么不能按列别名进行 ORDER BY?