使用php-mysql创建数据库时出错


Error creating database using php mysql

我写这个页面是为了从注册页面接收。它重定向,没有显示任何错误,但phpmyadmin无法识别我尝试创建的数据库,即我甚至无法在phpmyadmin中看到数据库。怎么了?

<html>
<body>
<?
    $con = mysql_connect_db("localhost", "user", "");
    $create_db = mysql_query('CREATE DATABASE USER', $con);
    if($create_db)
    {
        echo "wored";
    }
    $dbcreate = mysql_query('CREATE DATABASE USER',$con);
    mysql_select_db($dbcreate);
    $create = "CREATE TABLE USER1 (userid INT(20) AUTOINCREMENT NOT NULL, username VARCHAR(15) PRIMARY KEY NOT NULL, password VARCHAR(15) NOT NULL)";
    mysql_query($create);
    $query="INSERT INTO USER1(username,password) VALUES('$_POST[username]', '$_POST[password]');
    $result=mysql_query($query);
    mysql_close($con);
?>
<?php
    header('location:loginpage.html');
?>

你应该检查你的PHP错误日志,因为你试图做的甚至不是有效的PHP,所以任何与你的数据库相关的事情都不可能工作。

首先,请尝试mysql_connect()而不是mysql_connect_db。还要确保数据库用户具有正确的权限(这意味着他们实际上可以创建数据库)。

此外,请使用mysql_error()检查您的错误,否则将很难知道数据库中发生了什么故障。

话虽如此,您应该了解如何使用PHP提交表单及其最佳实践。提交表单后创建用户表绝对不是您想要做的事情。请先创建表,然后在用户注册时将行插入表中。此外,您永远不希望存储用户的密码。阅读如何使用Bcrypt保存用户密码。

在您的mysql_connect()中,您必须使用mysql的用户名。mysql的默认用户名是"root"。所以连接应该是这样

mysql_connect('localhost','root','');

我认为你的观念是错误的。每次用户访问您的注册页面时,都会访问此页面。因此,每次运行查询"createdatabaseuser"时。没有必要每次都运行此查询。所以你的第一个创建数据库。然后从注册页面检索值。

创建数据库的php脚本是:

<?php

mysql_connect('localhost','root','')
$query=mysql_query('创建数据库用户')
$qu=mysql_query('use user')
if($query)

echo'数据库已创建'
}
其他

echo'数据库未创建'
}
?>

   Now the database 'user' is created.