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')");