更新数据库中的用户表

时间:2014-10-05 11:01:18

标签: php mysql phpmyadmin

我创建了一个用户可以更新其bio的成员区域。问题是用户提交的信息不会更新数据库中的行。

会员区

<body bgcolor="#E6E6FA">
<a href="logout.php"><button>Log Out</button></a><br><br>
<input type="text" name="age"placeholder="Enter a your age."><br>
<input type="text" name="bio"placeholder="Enter your bio.">
<input type="submit" name="submit" value="Submit your details!">

PHP

<?php
if(isset($_POST['submit'])){
  $con=mysql_connect("localhost","root","****","****");
  // Check connection
  if (mysql_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  $age = mysql_real_escape_string($_POST['age']);
  $bio = mysql_real_escape_string($_POST['bio']);
  $name = mysql_real_escape_string($_SESSION['username']);

  mysql_query($con,"UPDATE accs SET age='.$age.' WHERE name='.$name.'");
  mysql_query($con,"UPDATE accs SET bio='.$bio.' WHERE name='.$name.'");

  mysql_close($con);
};
?> 
</body></html>

关于这里有什么问题的任何想法?

3 个答案:

答案 0 :(得分:0)

在您的HTML页面中,表单应位于<form></form>标记

<form method="post" action="update.php">
<input type="text" name="age" placeholder="Enter a your age.">
<br>
<input type="text" name="bio" placeholder="Enter your bio.">
<input type="submit" name="submit" value="Submit your details!">
</form>

在您的PHP页面中 - 要检查结果,您可以暂时echo $age; echo $bio; 当您使用$_SESSION['username'];时,我认为您在PHP代码的顶部缺少session_start();

同样mysql_query只需要SQL命令,而不是连接($con),即mysqli,强烈建议使用而不是mysql _ *。

作为旁注,请勿依赖数据库中的用户名作为更新标准。如果尚未引入,则可以向表中添加ID列

答案 1 :(得分:0)

a)创建一个合适的提交表单。在表单字段周围使用表单标签。

b)通过检查$ _POST数组来检查表单是否正确提交。

var_dump($_POST);

c)检查您是否有要插入的字段的值。 在mysql_query()之前做一个var_dump(),看看发生了什么。

var_dump($age, $bio, $name);

d)将两个查询调用合并为一个:

mysql_query($con, "UPDATE accs SET age='.$age.', bio='.$bio.' WHERE name='.$name.'");

答案 2 :(得分:0)

如果您想使用自己的页面来处理您的请求,请清空表单的action属性。例如:

<form method="post" action="">
<input type="text" name="age"placeholder="Enter a your age."><br>
<input type="text" name="bio"placeholder="Enter your bio.">
<input type="submit" name="submit" value="Submit your details!">
</form>