我写这个页面是为了从注册页面接收。它重定向,没有显示任何错误,但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.