【问题标题】:Cannot get a PHP update function to work无法使 PHP 更新功能正常工作
【发布时间】:2013-04-08 03:36:39
【问题描述】:

您好,我正在使用 html 和 PHP 来更新数据库表中的变量,我已确保 html 表单正常工作,并已使用回显来确保脚本正在运行。它没有给我任何错误迹象,但不会更新表格。为了澄清我的 html 代码工作正常,因为函数正在工作并且所有正确的回声都出来了。这是我希望有人能告诉我哪里出错的代码。谢谢!

<?php
session_start();
$healthyPig = 50;
$userNamer = $_SESSION['rememberMe'];
echo $userNamer;
$connect=(mysql_connect("localhost","lpwd10","lpwd10","lpwd10_proj"));
if (mysql_error())
  {
  echo "Failed to connect";
  }
echo "connected SON";
mysql_query($connect,"UPDATE user SET 'pigHealth' = $healthyPig WHERE userName='$userNamer'");
header('Location: pigManager.php');
echo "Complete";
mysql_close($con);



?>

【问题讨论】:

  • 尝试mysql_query(...) or die(mysql_error());查看输出错误。
  • 您的 SET 'pigHealth' = 至少是不正确的。省略单引号,或使用反引号。我建议将其更改为 SET pigHealth = $healthyPig ...
  • 表中是否存在用户名正确的用户?也许您需要使用mysql_select_db() 选择正确的数据库?
  • 您对 SQL 注入敞开了大门。请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 bobby-tables.com/php 有一些示例可以帮助您入门。
  • 一旦完成,请告诉我网站的网址,我很想对其进行 sql-inject。我在开玩笑,但说真的,你的代码很简单,看看这个:stackoverflow.com/questions/16023217/…我 cba 在这里重写它。

标签: php html mysql web project


【解决方案1】:

值应该用引号引起来,而不是列名

"UPDATE user SET pigHealth = '$healthyPig' WHERE userName='$userNamer'"

【讨论】:

  • 嗨,我已经修复了我的语法,但它仍然无法正常工作。用户名取自会话变量并使用回声确保将其传递到脚本中。我暂时不担心sql注入,以后会解决的。
【解决方案2】:

我认为您混淆了 mysql_mysqli_ 扩展名。

使用mysql_ 扩展你的query() 语句是错误的

mysql_query($connect,"UPDATE user SET 'pigHealth' = $healthyPig WHERE   userName='$userNamer'");

应该是

mysql_query("UPDATE user SET 'pigHealth' = $healthyPig WHERE userName='$userNamer'", $connect);

但是您不应该再使用mysql_ 扩展,它已被弃用多年,并已从 PHP7 中完全删除,因此您使用它编写的任何代码都不会在 PHP7 上运行。

特别是如果您只是学习 PHP,请花精力学习 PDO 数据库扩展。 Start here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    相关资源
    最近更新 更多