gpt4 book ai didi

php - 使用准备好的语句在 MySQL/PHP 中增加字段的问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:03 25 4
gpt4 key购买 nike

我有以下代码,应该在准备好的 PHP mysql 语句中将字段值递增 1:

function db_OP_doVote($pdo, $postid, $votetype)
{
$prepStatement = $pdo->prepare(
"UPDATE content_posts SET `:votetype` = `:votetype` + 1 WHERE `id` = :id"
);

$prepStatement->execute(array(':votetype' => $votetype, ':id' => $postid));

echo "Success";
}

然而,这什么都不做。没有关于不正确的 SQL 语法的错误被抛出并且脚本运行完成,但我的字段根本没有更新。

此脚本的值通过 jQuery post() 提供给此脚本:

//isset checking here
$postID = (int)$_POST['id'];
$voteType = $_POST['type'];

if ($voteType == "y")
{
$trueType = "v-cool";
}
elseif ($voteType == "m")
{
$trueType = "v-meh";
}
elseif ($voteType == "n")
{
$trueType = "v-shit";
}
else
{
die();
}

$db = db_Connect();

db_OP_doVote($db, $postID, $trueType);

这似乎也可以过滤值并正常发送它们。我无法理解问题可能是什么。递增的字段是 BIGINT(20)。

我错过了什么?

编辑:解决了问题。

N.B 的评论一针见血——绑定(bind)列名会导致它被引用,从而使查询无效。谢谢!

最佳答案

您不能对字段名称使用绑定(bind)。

从问题来看,您的设置似乎有误。

您应该有另一个表,其中包含投票和投票类型作为数据。

关于php - 使用准备好的语句在 MySQL/PHP 中增加字段的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7835024/

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