繁体   English   中英

使用php PDO将数据插入数据库

[英]Insert data into Database using php PDO

我正在尝试使用php和mysql创建一个“注册”表单。 注册表要求输入用户名和密码。 如果任何字段为空,它将让用户知道哪个。 如果使用了用户名,它也会通知用户。

我知道到数据库的连接是可以的,因为我创建了一个手动添加到数据库中的用户。

奇怪的是我的代码正在Cloud9中工作。 但是,它不适用于安装在Google云上的VM实例。

在cloud9中,它将用户添加到数据库中。 在google实例中,它不会。

有人可以检查一下并告诉我我做错了吗?

谢谢。

<?php
        $username = $_POST['username'];
        $password = $_POST['password'];
        $display = $_POST['display'];



        $dbh = new PDO("mysql:host=localhost;dbname=mydb","root",NULL);
        $stmt = $dbh->prepare("SELECT username FROM users WHERE username = :username");
        $stmt->bindParam(':username', $username);
        $stmt->execute();

        if($stmt->rowCount() == 0 and $username != null and $password != null){
            $insert = $dbh->prepare("INSERT INTO users(username,password) VALUES(:username, :password)");
            $insert->bindParam(':username', $username);
            $insert->bindParam(':password', $password);
            $insert->execute();
            echo ("The user ".$username. " has been created.");

在您需要检查之前尝试一下

  • 如果用户名和密码不为空,因为如果用户名为空,我无法使查询有效以选择用户名
  • 检查用户名是否正在使用

  • 如果未使用用户名,则将数据插入数据库

脚本

<?php

// error_reporting on
error_reporting(1);
ini_set('error_reporting', E_ALL);

$username = $_POST['username'];
$password = $_POST['password'];
// i commented $display variable because i don't see that u using it anywhere
//$display = $_POST['display'];

// database connection
$dbh = new PDO("mysql:host=localhost;dbname=mydb","root","");

// query
$stmt = $dbh->prepare("SELECT username FROM users WHERE username = :username");
$stmt->bindParam(':username', $username);
$stmt->execute();

// check if username and password is not empty
if ($username != '' && $password != '')
{
    // check if username is in use
    if($stmt->rowCount() > 1)
    {
        echo "Username in use, please choose another one.";
    }
    else
    {
        $insert = $dbh->prepare("INSERT INTO users(username,password) VALUES(:username, :password)");
        $insert->bindParam(':username', $username);
        $insert->bindParam(':password', $password);
        $insert->execute();

        // if last inserted id is true
        if ($dbh->lastInsertId())
        {
            echo "The user ".$username. " has been created.";
        }
        else
        {
            echo "User not registered, please try again.";
        }
    }
}
else
{
    echo "Please enter username and password.";
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM