phpmyadmin上的数据库不会保存数据,即使我的连接文件工作正常

phpmyadmin上的数据库不会保存数据,即使我的连接文件工作正常,php,mysql,Php,Mysql,这是我的连接文件,它没有错误,但似乎没有连接到我的数据库 <?php $username="root";$password="Abubba21";$database="posts"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); mysql_close(); ?> 这是我的代码,我甚至必须把php头放在文件

这是我的连接文件,它没有错误,但似乎没有连接到我的数据库

<?php
$username="root";$password="Abubba21";$database="posts";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
mysql_close();
?>
这是我的代码,我甚至必须把php头放在文件的底部,否则什么也不会显示

<body>

<?php

 $db_host = "localhost";
 $db_username = "root"
 $db_pass = "Abubba21";
 $db_name = "accounts";

 try
 {
    $db = new PDO('mysql:host='.$db_host.';dbname'.$db_name,$db_username,$db_pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    //$result = $db->query
 }
 catch(PDOException $e)
 {
    echo "Server error: ",$e->getCode()."invalid server";
 }
 $reg = @$_POST['reg'];

 $un = "";
 $pswd = "";
 $em = "";
 $em2 = "";
 $pswd2 = "";

 $un = strip_tags(@$_POST['username']);
 $pswd = strip_tags(@$_POST['password']);
 $em = strip_tags(@$_POST['email']);
 $pswd2 = strip_tags(@$_POST['password2']);
 $em2 = strip_tags(@$_POST['email2']);

 if($reg){
    if($em == $em2){

        $u_check = mysql_query("SELECT username FROM accounts WHERE username = '$un'");
        $check = mysql_num_rows($u_check);
        if($check==0){
            if($un&&$pswd&&$em&&$pswd2&&$em2){
                if($pswd == $pswd2){

                if(strlen($un)>25)
                {
                    echo "The maximum limit for the username is 25 characters.";

                }
                else
                {
                    if(strlen($pswd)>30||strlen($pswd)<5){
                    echo "Your password has to be between 5 and 30 characters.";
                }
                else
                {
                    $pswd = md5($pswd);
                    $pswd2 = md5($pswd2);
                    $query = mysql_query("INSERT INTO accounts VALUES ('','un','pswd','em')");
                    die("<h2>Welcome</h2> Log in to start");
                }   
                }
                }
                else
                {
                    echo "Your passwords don't match";
                }
                }
                else
                {
                    echo "You must fill in all fields";
                }
                }
                else
                {
                    echo "Username is already token";
                }
                }
                else
                {
                    echo "Your emails don't match";
                }
            }

?>



    <div class="body">


        <div class="register">
            <h1 class="heads">Register</h1><br><br><br><br>

            <form action="#" method="post">
                <div class="login">
                    <input type="text" name="username" value="" placeholder="Username ...">
                    <p />
                    <input type="password" name="password" value="" placeholder="Password ...">
                    <p />
                    <input type="password" name="password2" value="" placeholder="Password ...">
                    <p />
                    <input type="email" name="email" value="" placeholder="someone@somesite.com">
                    <p />
                    <input type="email" name="email2" value="" placeholder="someone@somesite.com">
                    <p />
                    <input type="submit" name="createaccount" value="Create Account">
                </div>
            </form>
        </div class="register">
        <div class="grad"></div>
        <div class="header">
            <div><span>Welcome</span></div> <br><br>
        </div>
        <br>
        <form action="home.php" method="post">
            <div class="login">
                <input type="text" name="username" value="" size="30" placeholder="username"><br>
                <input type="password" name="password" value="" size="30" placeholder="password">
                <input type="submit" name="login" value="Login"><br>

            </div>
        </form>
    </div>

    <?php include("connect.php"); ?>

我认为您的查询字符串不正确:

$query = mysql_query("INSERT INTO accounts VALUES ('','un','pswd','em')");
致:

示例代码使用mysql_查询函数,但连接是PDO。那是行不通的。不要混合使用来自数据库扩展的函数调用。挑一个

对于PHP,有三种常用的数据库接口扩展:

mysql\不要将此用于新代码

MySQLi

PDO-支持MySQL和其他数据库

请参见此处的通知:

警告:此扩展在PHP5.5.0中被弃用,并在PHP7.0.0中被删除。相反,应该使用MySQLi或PDO_MySQL扩展。有关更多信息,请参见MySQL:选择API指南和相关常见问题解答。此功能的替代方案包括: . mysqli_查询 . PDO::查询

不要混合使用来自数据库接口扩展的函数调用。那是行不通的


MD5哈希不适用于密码

请缩进你的代码这很难读。您正在使用错误报告吗?您可以接受SQL注入。”un'、'pswd'、'em'是字符串,而不是变量,这是故意的吗?是的,将密码存储为md5并使用mysql会说这个脚本已经超过10年了。是时候拿起一本书来学习今天的标准了。你不需要指定列。记号也不应该转义,不确定这是否用于此处的代码格式。是的,必须转义记号才能显示它们。我很好奇MySQL文档中哪里说它们不是必需的?如果您没有为INSERT指定列名列表。。。值或插入。。。SELECT,表中每列的值必须由值列表或SELECT语句提供。如果您不知道表中列的顺序,请使用descripe tbl_name查找。-@abiel是您的insert引用了表中的每一列,即SQL表中只有四列吗?@dreamwalker是的,这是正确的
$query = mysql_query("INSERT INTO accounts (\`my_column_name\`,\`another_column\`,\`etc\`,\`etc2\`) VALUES ('','un','pswd','em')");