首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP使用查询更新数据库中的配置文件细节

问使用PHP使用查询更新数据库中的配置文件细节
EN

Stack Overflow用户
提问于 2018-10-18 08:45:05
回答 1查看 442关注 0票数 0

我似乎无法更新我的数据库中的配置文件细节。它没有任何错误,只是没有显示在数据库中。我使用会话来帮助我在整个登录时间内存储用户名。这是我的updateprof.php

代码语言:javascript
复制
 <?php
   session_start();
    ob_start();
    If (!isset($_SESSION["username"])){
        $_SESSION['username'] = $username;
            header("Location:logreg.php");
        }
    else {
    $username = $_SESSION['username'];
    }
 ?>    

<?php
   $username = $_SESSION['username'];
   $mysqli = new mysqli("localhost", "mp01_user", "venture@1998", "mp01_game");
  $stmt = $mysqli-> prepare("SELECT username, name, email, gender, dob FROM users WHERE username= ?");
        $stmt->bind_param("s", $username); 
        $stmt->execute();
        $stmt->bind_result($username, $name, $email, $gender, $dob);
        $stmt->fetch();

   echo "<table id='tableupprof' cellpadding='5' cellspacing='0' width='600' align='center' >";
   echo "<form action='profupdated.php?username=$username' method='post'>";
//Username
   echo "<tr><td>UserID:</td> <td><input type='text' name='username' value='". $username. "' style='width:380px; border:1px solid #999999' readonly></td></tr>";
//Name
   echo "<tr><td>Name:</td> <td><input type='text' name='name' value='". $name. "' style='width:380px; border:1px solid #999999' required></td></tr>";
//email
   echo "<tr><td>Email:</td><td><input type='text' name='email' value='". $email. "' style='width:380px; border:1px solid #999999' required> </td></tr><br><br>";
//gender
   echo "<tr><td>Gender: <td><input type ='text' name='gender' value='". $gender. "' style='width:380px; border:1px solid #999999;' required></td></tr>";
//dob
   echo "<tr><td>Date of Birth: <td><input type='text' name='dob' value='". $dob. "' style='width:380px; border:1px solid #999999;' readonly></td></tr>";

//Submit Form
   echo "<tr><td></td><td><input type='submit' name='submit' value='Update' />";
   echo "<input type='reset' value='Reset'  /></td></tr>";
   echo "</form></table>";


$stmt->execute();
$stmt->close();
$mysqli->close();


ob_end_flush()  
?>

一旦用户单击“更新”,它将导致profupdated.php?username=___ (用户名),例如,profupdated.php?username=max

对于profupdated.php:

代码语言:javascript
复制
   <?php
   session_start();
   ob_start();
      If (!isset($_SESSION["username"])){
        $_SESSION['username'] = $username;
            header("Location:logreg.php");
        }
   else {
   $username = $_SESSION['username'];
  }
 ?>

  <?php
        if( $_POST )
    {$connect = @mysql_connect("localhost", "mp01_user", "venture@1998");

  if (!$connect)
  {
    die('Could not connect: ' . mysql_error());
  }

     mysql_select_db("mp01_game", $connect);

     $username=$_POST['username'];
     $name=$_POST['name'];
     $email=$_POST['email'];
     $gender=$_POST['gender'];
     $dob=$_POST['dob'];

     $username = mysql_real_escape_string($username);
     $name = mysql_real_escape_string($name);
     $email = mysql_real_escape_string($email);
     $gender = mysql_real_escape_string($gender);
     $dob = mysql_real_escape_string($dob);

    $query = "UPDATE `users` SET `name` = $name, `email` = $email, `gender` 
   = $gender, `dob`=$dob WHERE `username` = $username";

  mysql_query($query);

   echo "<div id='h2'>You have update successfully!<br>";


        echo "<br><br> Please <a href='login.html'>Click Here</a> to login!";

    mysql_close($connect);
   } 

?>
EN

回答 1

Stack Overflow用户

发布于 2018-10-18 09:03:28

你说没有错误--这可能是因为你没有试图捕捉错误。

你能代替

代码语言:javascript
复制
mysql_query($query);

echo "<div id='h2'>You have update successfully!<br>";


echo "<br><br> Please <a href='login.html'>Click Here</a> to login!";

mysql_close($connect);

使用

代码语言:javascript
复制
if(mysql_query($query) {
    /* If the query is successful, echo the success message and login link */
    echo "<div id='h2'>You have update successfully!<br>";
    echo "<br><br> Please <a href='login.html'>Click Here</a> to login!";
    mysql_close($connect);

} elseif (mysql_errno()){
    /* If the query is not successful - return the error */
    echo mysql_error($sql);
    mysql_close($connect);
}

这将捕获SQL返回的任何错误。

而且-我看到你在MYSQLi和MYSQL之间切换-我建议你坚持一个或另一个为了一致性。

最重要的是--就像FYI一样,MYSQL扩展在PHP7中被废弃了,所以我建议您坚持使用MYSQLi。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52870229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档