php - 在php中更新一行mysql

标签 php mysql html sql-update

我有一个看起来像这样的表:

name surname username password role

student student student@csd.auth.gr student student

student2 student2 student2@csd.auth.gr student2 student

我希望能够在 php 中编辑一行。 这些值取自如下 html 文件:

用户名

student2@csd.auth.gr <--这将写在一个文本框中

密码

student2 <--这将写在一个文本框中

姓名

student2 <--这将写在一个文本框中

姓氏

student2 <--这将写在一个文本框中

角色

student <--这将写在一个文本框中

我的 php 文件是:

<?php
$hostname = "localhost"; 
$database = "mydb"; 
$username = "myuser"; 
$password = "mypsw";
$link = mysql_connect( $hostname , $username , $password ) or 
        die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
mysql_select_db($database,$link);

mysql_query("UPDATE user 
         SET username = '".mysql_real_escape_string($_POST[nusername])."', 
         SET password = '".mysql_real_escape_string($_POST[npassword])."', 
         SET name = '".mysql_real_escape_string($_POST[nname])."', 
         SET surname = '".mysql_real_escape_string($_POST[nsurname])."', 
         SET role = '".mysql_real_escape_string($_POST[nrole])."' 
         WHERE username='".mysql_real_escape_string($_POST[us])."'");

mysql_close($link);
header("Location: users.php");
?>

1.更新没有发生,所以 php 文件有问题,我找不到。

<强>2。如果我选择某个用户名,如何在 html 文件中使用正确的值实现已填充的框?

有人可以帮助我吗?先感谢您。 :)

最佳答案

这里发生了很多事情。

  1. 始终将整数用作主键,例如:id MEDIUMINT NOT NULL AUTO_INCREMENT。然后将其设为主键。

  2. 您需要使用 mysql_real_escape_string()

    清理您对数据库的输入
  3. 您需要连接您的查询,因此它应该如下所示:

    mysql_query("更新用户 SET username = '".mysql_real_escape_string($_POST[nusername])."' SET password = '".mysql_real_escape_string($_POST[npassword])."' SET name = '".mysql_real_escape_string($_POST[nname])."' SET surname = '".mysql_real_escape_string($_POST[nsurname])."' SET role = '".mysql_real_escape_string($_POST[nrole])."' WHERE username='".mysql_real_escape_string($_POST[us])."'");

修改后的代码:

    <?php
$hostname = "localhost"; 
$database = "mydb"; 
$username = "myuser"; 
$password = "mypsw";
$link = mysql_connect( $hostname , $username , $password ) or 
        die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
mysql_select_db($database,$link);

mysql_query("UPDATE user 
         SET username = '".mysql_real_escape_string($_POST['nusername'])."', 
         SET password = '".mysql_real_escape_string($_POST['npassword'])."', 
         SET name = '".mysql_real_escape_string($_POST['nname'])."', 
         SET surname = '".mysql_real_escape_string($_POST['nsurname'])."', 
         SET role = '".mysql_real_escape_string($_POST['nrole'])."' 
         WHERE username='".mysql_real_escape_string($_POST['us'])."'");

mysql_close($link);
header("Location: users.php");
?>

注意 _POST 变量 $_POST['nusername'] 周围的单引号,你有 $_POST[nusername]。

现在试试,看看它是否更新。

关于php - 在php中更新一行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304794/

相关文章:

HTML/CSS 图像导航菜单

html - 在多个图像上居中文本

php比较包含&的字符串

php - 基于变量的表

mysql - Socket.io 和 Node.js 与 mysql 未按预期返回结果

mysql - 获取表不存在错误,但表确实存在(ActiveRecord::StatementInvalid Mysql2::Error: Table doesn't exist)

javascript - 使用 cUrl 请求 svg.sencha.io 时出现错误请求

javascript - Laravel 向 js 传递路由

PHP/SQL 检查数据库中是否已存在类似条目

jquery - 在一个区域显示隐藏的div