<?php
$name= $_POST["dbname"];
$pass= $_POST["dbpass"];
$rname= $_POST["rootname"];
$rpass=$_POST["rootpass"];
if ($rname='leave blank for default root name' or $name='')
{
$rname="root";
}
if ($rpass='leave blank if no password assigned')
{
$rpass='';
}
$con = mysql_connect("localhost", $rname, $rpass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE {$name}",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
(mysql_query("DATABASEPASSWORD {$pass}",$con));
mysql_close($con);
?>
这是我用来创建数据库的php脚本,我传递rootname = root和rootpass = toor
但是我收到了错误
警告:mysql_connect():用户'root'@'localhost'拒绝访问 (使用密码:NO)在/var/www/webdefender/script/dbcreate.php上 第17行无法连接:用户'root'@'localhost'拒绝访问 (使用密码:否)
但是当我使用
时$con = mysql_connect("localhost", 'root','toor' );
一切正常
请帮忙
答案 0 :(得分:4)
您在前2次检查中分配值,而不是检查它们是否相等。
$a = 1; // assigning
$a == 1; // this is a check if 1 is $a is equal to 1
所以你基本上将$ rpass值重置为''(空字符串):
if ($rpass='leave blank if no password assigned')
{
$rpass='';
}
将您的支票更改为使用==,它将有效。
请注意,从脚本使用root访问权限是一个巨大的安全隐患。
答案 1 :(得分:0)
请勿在{{1}}
附近使用或使用以下代码if ($rname='')
答案 2 :(得分:0)
if($a=b)
始终返回true,$ a的值为b
正确的语法是
if($a==b)
所以当且仅当$ a value = b时它返回true