我想通过php在mysql中创建一个数据库,但我收到了拒绝访问的错误。这是代码:
<form action = "createdb.php" method = "post">
<label for = "dbname">database name to be created</label><br>
<input type = "text" name = "dbname" /><br>
<input type = "submit" name = "submit" value = "submit"/>
</form>
<?php
if(isset($_POST['submit'])){
$server = 'localhost';
$uname = 'root';
$pass = 'jooko';
$dbname = $_POST['dbname'];
$createdb = "CREATE DATABASE `$dbname`";
$connect = mysql_connect(`$server`,`$uname`,`$pass`);
//$queryuse = "USE '$dbname'";
$result = mysql_query($createdb, $connect);
if(!$result){echo mysql_error();}
?>
任何帮助都将不胜感激。非常感谢。
我做到了。问题是登录数据的$connect变量中的反引号。不得不删除$uname和$pass的后引号。。。不知道为什么必须这样,但它是有效的。不过谢谢。
弃用通知:
不要在新代码中使用mysql_*
函数。它们不再被维护,并被正式弃用。是否看到红框?了解准备好的语句,并使用PDO或MySQLi-本文将帮助您决定哪一个。如果你选择PDO,这里有一个很好的教程。
此外,函数参数中的反调也会导致问题。PDO就是这样做的。
<form action = "createdb.php" method = "post">
<label for = "dbname">database name to be created</label><br>
<input type = "text" name = "dbname" /><br>
<input type = "submit" name = "submit" value = "submit"/>
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$server = 'localhost';
$uname = 'root';
$pass = 'jooko';
$dbname = $_POST['dbname'];
try {
$pdo = new PDO("mysql:host=".$server.";", $uname, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbname = "`".str_replace("`", "``", $dbname)."`";
$pdo->query("CREATE DATABASE IF NOT EXISTS ".$dbname);
echo 'Database created.';
}catch (Exception $e){
echo $e->getMessage();
}
}
?>
如果您仍然存在访问被拒绝的问题,请检查根密码是否正确。