【问题标题】:PHP does not add to MYSQLPHP 不添加到 MYSQL
【发布时间】:2013-11-07 18:25:05
【问题描述】:

我有以下代码更新数据库表中的字段以添加 1。 ID 应该有一个发布到它的变量。谁能看出这是哪里出了问题?

编辑:对不起,我完全忘记提及实际问题。数据库未更新字段。

<?php
$con=mysqli_connect("localhost","**","***","***");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_query($con,"UPDATE base SET thumbdown = thumbdown + 1 WHERE id = $_POST['id']");

mysqli_close($con);
?>

【问题讨论】:

  • 这里到底有什么问题? @googleyberry
  • 查询看起来不错。只是一个疯狂的猜测,但你能打印出 $_POST['id'] 变量吗?我的猜测是它要么未设置,要么未设置为您期望将其设置为的整数值。
  • @LorenzMeyer 这让我感到困惑。变量已设置,我也尝试将其打印为 David 所说的变量。
  • 你必须用大括号包围 $_POST。

标签: php mysql database add


【解决方案1】:

您不会将$_POST['id'] 正确解析为字符串,因为它是一个数组。你必须用大括号括起来:

"UPDATE base SET thumbdown = thumbdown + 1 WHERE id = '{$_POST['id']}'"

但请记住(永远!)首先转义变量:

$id = mysqli_real_escape_string($_POST['id']);
mysqli_query($con,"UPDATE base SET thumbdown = thumbdown + 1 WHERE id = '{$id}'");

【讨论】:

  • 如何知道db表中id字段是否为整数?我错过了什么吗?
  • 我将它设置为一个整数。我刚刚尝试了这段代码,它似乎也不起作用?
  • 那么您必须提供更多详细信息。输出是什么?是否显示任何错误?
  • 我有一个发布到 php 脚本的系统。我已经确认它正在正确发送变量“id”,例如,我可以确认它通过“4”发送到 ID 变量。没有可见的错误。如果我将一个数字硬编码到脚本中,那么它就可以正常工作,但问题似乎与变量有关。
  • @maciej 查询中没有引号。
猜你喜欢
  • 2011-12-30
  • 2011-09-13
  • 2014-11-11
  • 2010-11-29
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
相关资源
最近更新 更多