首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当来自bindValue的值时,PDO bindValue不工作

当来自bindValue的值时,PDO bindValue不工作
EN

Stack Overflow用户
提问于 2015-03-13 16:31:33
回答 1查看 466关注 0票数 1

我试图使用PHP、SQL、PDO创建一个基本的评级函数,它将用户给予字段"recipe_rating“的评级值添加到字段"recipe_ratingcounter”中,然后将1添加到字段“recipe_ratingcounter”。

但是,下面的代码不太正确!$query1->bindValue(2,$recipename)和$query2->bindValue(1,$recipename)两行没有正常工作,因为它们实际上没有将任何内容绑定到SQL语句中的相应占位符。SQL语法是正确的,因为当上面的$recipename变量替换为单个字符串(如“金枪鱼意大利面”或"spag“)而不是$_GET‘’name‘时,整个函数工作得很好。

Var_dump将$recipename显示为字符串,此时两者都是:

  • $recipename =$_GET‘’name‘;
  • $recipename =“金枪鱼意大利面”;

因此,...and,我不知道下一步该做什么,因为我已经尝试了我所能想到的一切!

这工作-

代码语言:javascript
复制
if (isset($_POST["Submit"])) {
$selectedrating = $_POST["rating"];
$recipename = "tuna pasta";

global $con;
$query1 = $con->prepare("UPDATE emptyfridge SET recipe_rating = recipe_rating + :recipe_rating WHERE recipe_name = :recipe_name1");
$query1->bindValue(':recipe_rating', $selectedrating);
$query1->bindValue(':recipe_name1', $recipename);
$query1->execute();

$query2 = $con->prepare("UPDATE emptyfridge SET recipe_ratingcounter = recipe_ratingcounter + 1 WHERE recipe_name = :recipe_name2");
$query2->bindValue(':recipe_name2', $recipename);
$query2->execute();
}

,但这不管用-

代码语言:javascript
复制
if (isset($_POST["Submit"])) {
$selectedrating = $_POST["rating"];
$recipename = $_GET['name'];

global $con;
$query1 = $con->prepare("UPDATE emptyfridge SET recipe_rating = recipe_rating + :recipe_rating WHERE recipe_name = :recipe_name1");
$query1->bindValue(':recipe_rating', $selectedrating);
$query1->bindValue(':recipe_name1', $recipename);
$query1->execute();

$query2 = $con->prepare("UPDATE emptyfridge SET recipe_ratingcounter = recipe_ratingcounter + 1 WHERE recipe_name = :recipe_name2");
$query2->bindValue(':recipe_name2', $recipename);
$query2->execute();
}

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-03-13 23:48:21

bindValue用于原始值。示例:

代码语言:javascript
复制
$sql->bindValue(":val1", "tuna pasta");
$sql->bindValue(":val2", 1234);

您必须对变量中的值使用bindParam。示例:

代码语言:javascript
复制
$var1 = "tuna pasta";
$var2 = 1234;
$sql->bindParam(":val1", $var1);
$sql->bindParam(":val2", $var2);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29037379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档