我试图将输入值用作数据库的名称,但它不起作用
<html>
<form action="config.php" method="Post">
<table>
<tr><td>DB Name: <input type="text" name="dbname"></td></tr>
<tr><td><button type="submit" name="submit_two"> Submit</button></td></tr>
</table>
</form>
</html>
的config.php
<?php
$dbname = "";
if (isset($_POST['submit_two'])){
$dbname = test_input($_POST["dbname"]);
$data = "CREATE DATABASE IF NOT EXISTS $dbname";
if (!$data) {
echo "could not connect" . mysql_error();
} elseif ($dbname == ""){
echo "no";
}else{
echo "gud to go";
}
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
它一直在显示&#34; gud to go&#34;但是当我检查数据库时,将不会创建任何创建
答案 0 :(得分:2)
您忘记运行mysql查询:
<?php
//first, create the connection
$con = mysqli_connect("the_db_host","db_user","db_pass");
//then, execute your code like:
$dbname = "";
if (isset($_POST['submit_two'])){
$dbname = test_input($_POST["dbname"]);
$data = mysqli_query($con, "CREATE DATABASE IF NOT EXISTS $dbname");
if (!$data) {
echo "could not connect" . mysqli_error($con);
} elseif ($dbname == ""){
echo "no";
}else{
echo "gud to go";
}
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<强>更新强> 根据@ krishna的评论,我更新了这个答案。
关于mysqli_*
超过mysql_*
,有一些原因:
答案 1 :(得分:0)
从您的代码中,您所做的就是创建几个字符串;在某些时候,您必须连接到数据库并以SQL身份执行这些操作。例如,请参阅this有关如何使用PDO_mysql的教程。
您可能还想查看类似项目的代码,例如this list of "10 Database Management Tools for Developers"上的项目,以获取想法并了解哪些内容在长期内有效/无效。