无法使 PHP 更新功能正常工作

Posted

技术标签:

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

您好,我正在使用 htmlphp 来更新数据库表中的变量,我已确保 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。我在开玩笑,但说真的,你的代码很简单,看看这个:***.com/questions/16023217/…我 cba 在这里重写它。 【参考方案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

【讨论】:

以上是关于无法使 PHP 更新功能正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 资产()功能无法正常工作

Visio DrawLine()方法无法正常工作

打印功能无法正常工作 - 链表

Javascript 表单验证器功能无法正常工作

XAMPP 发送邮件无法正常工作

PyQt5 - 将逻辑与 ui 分离导致功能无法正常工作