将注册表数据提交到数据库-phpmyadmin

gorkyyrv  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(437)

我刚接触php,对数据库的工作原理仍有很多了解。我一直在努力想办法用phpmyadmin向mysql表中添加额外的数据。我相信我至少正确地将额外的输入添加到了我的数据库表中,但是在php方面,我感到无所适从。我肯定我忘了一件很简单的事。
我能够成功地输入$username、$email和$password,它们在我的db表中运行良好。现在我正在尝试添加$firstname和$lastname,但运气不好!诚然,我对这方面的了解很少。
非常感谢您的帮助!
以下是php:

<?php
include('classes/DB.php');

if (isset($_POST['createaccount'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = $_POST['password'];

if (!DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$username))) {
if (strlen($username) >= 3 && strlen($username) <= 32) {
if (preg_match('/[a-zA-Z0-9_]+/', $username)) {
if (strlen($password) >= 6 && strlen($password) <= 60) {
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

if (!DB::query('SELECT email FROM users WHERE email=:email', array(':email'=>$email))) {

DB::query('INSERT INTO users VALUES (\'\', :username, :password, :email, \'0\', \'\')', array(':username'=>$username, ':password'=>password_hash($password, PASSWORD_BCRYPT), ':email'=>$email));

以防万一,db.php:

<?php
class DB {

private static function connect() {

$pdo = new PDO('mysql:host=____;dbname=____;charset=utf8', '____', '____');

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}

public static function query($query, $params = array()) {
$statement = self::connect()->prepare($query);
$statement->execute($params);

if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement->fetchAll();
return $data;
           }
      }

}
frebpwbc

frebpwbc1#

我也是个新手 php/mysql 所以这可能不是正确的答案,但据我所知,你的插入语句是不正确的。

DB::query('INSERT INTO users VALUES (\'\', :username, :password, :email, \'0\', \'\')', array(':username'=>$username, ':password'=>password_hash($password, PASSWORD_BCRYPT), ':email'=>$email));

我总是指定列名称,所以它看起来像这样:

INSERT INTO table_name (columnname1, columnname2, etc.) VALUES (columnvalue1, columnvalue2, etc.);

同样不是100%肯定,但我通常是这样做的。
下面是我插入的一个示例:

mysql_query("INSERT INTO memberkey (member_id, randomkey) VALUES (".$_SESSION['id'].", '".$keyn."')");

相关问题