gpt4 book ai didi

php - 更新 SQL 表中的数据

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

我创建了一个让用户登录的网页,如果他们没有帐户,那么他们可以注册并为他们创建一个新用户。

这是数据库中的表users (user_registration)

    user_id    username   password    email                 wage
1 johnsmith jsmith99 jsmith@gmail.com 0
2 davidscott dscott95 davidscott@gmail.com 0

当新用户注册时,工资的默认值为 0。我希望他们能够通过使用表单对其进行编辑 - 这是表单的 HTML 代码:-

<form method="post" action="<?php $_PHP_SELF ?>">
<input name="new-wage" type="text" id="new-wage" class="textbox" placeholder="New Wage">
<input name="update" type="submit" id="update" value="Update" class="btn">
</form>

PHP 代码:(注意 - php 和 html 表单都在同一个文件(index.php)中)

 <?php
if(isset($_POST['update']))
{
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}

$user_id = $_SESSION['MM_Username'];;
$wage = $_POST['new-wage'];

$query = "UPDATE users ".
"SET wage = '$wage' ".
"WHERE user_id = '$user_id'" ;

mysql_select_db('user_registration');
$retval = mysql_query( $query, $conn );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}
else
{
?>

当我填写此表单并点击更新按钮时,它会重新加载网页并显示已成功更新数据,这正是应该发生的事情。但是 - 当我在 PHP My Admin 中刷新表格时,它会将工资保持为 0,而不是我在表格中输入的内容。

有没有人知道我的代码可能有什么问题?

提前感谢您的回答。

PS.- 我知道我使用了函数 mysql_* 而不是 mysqli_,只是因为我不知道如何转换它,你能帮我解决这个问题吗??

最佳答案

您很容易受到 sql injection attacks 的攻击.

另外,你似乎没有调用 session_start() 所以 $_SESSION 可能是空的,导致 $user_id 是空的,并且您的查询不匹配任何内容。一个简单的 var_dump($query) 将告诉您实际发生了什么。

您还需要检查 mysql_affected_rows(),看看是否真的有任何更新。

关于php - 更新 SQL 表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22945403/

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