【问题标题】:Im trying to add data into my users table in the database我试图将数据添加到数据库中的用户表中
【发布时间】:2021-08-18 09:29:24
【问题描述】:

我尝试了各种解决方案,但数据没有添加到数据库的用户表中。它总是去home.php。请帮忙。谢谢

<?php
$host="localhost";
$user="postgres";
$pass="password";
$db ="sportclub";
$con=pg_connect("host=$host dbname=$db user=$user password=$pass") or die ("Could not connect to Server\n");
    
if(isset($_POST['submit'])){
    $uname=$_POST['name'];
    $uemail=$_POST['email'];
    $upass=$_POST['pass'];
    $contact=$_POST['contact'];
    $regdate=$_POST['regdate'];
    $uadd=$_POST['address'];

$sql="INSERT INTO users (USER_NAME,USER_EMAIL,USER_PASSWORD,USER_CONTACT,USER_ADDRESS,REGISTER_DATE) VALUES ('$uname','$uemail','$upass','$contact','$regdate','$uadd')";
$result=pg_query($con,$sql);
if ($result){
    header("Location:login.php");
    }
else{
    header('Location:home.php');
    }
}
pg_close($con);
?>

【问题讨论】:

  • 检查您的插入语句,看起来您颠倒了 user_address 和 register_date 的列名和参数值。语句有 insert(..., user_address,register_date),而 values 子句有 *values(... '$regdate','$uadd')。插入中的列顺序是位置的,值必须匹配。

标签: php database postgresql


【解决方案1】:
  1. 检查pg_last_error() 的输出。这可能会为您指明正确的方向。

  2. 此外,您应该在将用户密码存储到数据库之前对其进行哈希处理,然后在他们尝试登录时比较哈希值。

  3. 阅读有关 SQL 注入的信息。您不能直接将用户输入传递给 db。

【讨论】:

  • 我的答案不需要证明全套工作代码。特定的建议可能与仅是代码的答案一样有用(我在很多情况下,更多)。
猜你喜欢
  • 2021-02-18
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
相关资源
最近更新 更多