gpt4 book ai didi

PHP pdo : update + insert and then select returns null

转载 作者:行者123 更新时间:2023-11-30 22:07:05 29 4
gpt4 key购买 nike

由于某种原因,执行时此 php 代码返回 NULL...cud any1 请帮助纠正它?

public function like($pid)
{
$uid = escape($_SESSION['user']);
$sql = $this->_db->prepare("UPDATE postsinitial SET likes = likes+1 WHERE pid = :m;INSERT IGNORE INTO userlikedposts (ulp_userid,ulp_postid) VALUES (:k, :m)");
$sql->bindValue(':k', $uid);
$sql->bindValue(':m', $pid);
$sql->execute();

$query = $this->_db->prepare("SELECT likes FROM postsinitial WHERE pid = :n");
$query->bindParam(':n', $pid);
$query->execute();
while($rows = $query->fetch())
{
return $rows['likes'];
}

}

但是当我分别运行查询的两个部分时,即注释掉 $sql 批处理代码并单独运行 $query 批处理时,它可以工作并返回一个值..,它工作正常..但不能合并为声明..那么我该如何按原样运行它?

我也为选择查询尝试过这个模型,结果仍然相同:

$query = $this->_db->prepare("SELECT likes FROM postsinitial WHERE pid = :n");
$query->bindParam(':n', $pid);
$query->execute();
while($rows = $query->fetch(PDO::FETCH_ASSOC))
{
return $rows[0]['likes'];
}

最佳答案

答案很简单:

您应该一个一个地运行您的查询,而不是将它们全部塞进一个调用中。运行插入查询分隔 rom 更新,你会没事的。

     public function like($pid)
{
$sql = "UPDATE postsinitial SET likes = likes+1 WHERE pid = ?";
$this->_db->prepare($sql)->execute($_SESSION['user']);

$sql = "INSERT IGNORE INTO userlikedposts (ulp_userid,ulp_postid) VALUES (?, ?)";
$this->_db->prepare($sql)->execute([$_SESSION['user'], $pid]);

$stmt = $this->_db->prepare("SELECT likes FROM postsinitial WHERE pid = ?");
$stmt->execute([$pid]);
return $stmt->fetchColumn();
}

关于PHP pdo : update + insert and then select returns null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41311130/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com