我只是开始使用php和mysql我一直在做VB这很简单,现在我很烦恼所有的PHP。我创建了一小段代码,它以root身份连接到mysql服务器并创建一个在文本字段中输入名称的数据库,但每当我加载页面时,我都会看到一条错误消息,然后我才有机会键入db name并点击按钮。 代码完成了这项工作,但却给出了一个令人困惑的错误信息。
注意:未定义的索引:第53行的C:\ xampp \ htdocs \ dbcreation.php中的dbname 创建数据库时出错:SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在''at line
附近使用正确的语法
<?php
$databasename = $_POST['dbname'];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE $databasename",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_close($con);
?>
我需要更改什么才能执行代码,直到我按下按钮?
答案 0 :(得分:3)
检查变量是否存在。
if(!empty($_POST['dbname'])){
// execute code
}
答案 1 :(得分:0)
即使表单尚未提交,您的查询也会正在运行。您首先需要检查表单是否已提交。例如:
if(!empty($_POST['dbname']))
{
// Handle stuff here.
}
我想为你提几点:
mysql_*
个功能,现在已弃用,您应该至少使用mysqli
。答案 2 :(得分:0)
您可以使用isset()函数
检查是否已设置变量<?php
if(isset($_POST['dbname']))
{
$databasename = $_POST['dbname'];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE $databasename",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_close($con);
}
?>
答案 3 :(得分:0)
调试MySQL错误时,您可以在出错后查看查询:
...
}
if (mysql_query("CREATE DATABASE $databasename",$con)) {
...
变为
...
}
$query = "CREATE DATABASE $databasename";
$succes = mysql_query($query, $con) or die("Query: '".$query."' failed: ".mysql_error());
if ($succes) {
...
有人建议:使用mysqli而不是mysql。
答案 4 :(得分:0)
试试这个:
$host="";//Host name
$username="";//MYSQL username
$password="";//MYSQL password
$db_name="";//Database name
//connect to server and select database
try{
$conn = new PDO('mysql:host='.$host.';dbname='.$db_name.'',$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}
catch(PDOException $e){
echo 'ERROR: ' . $e->getMessage();}
//post vars
$dbname=$_POST['dbname']
if(empty($dbname))
{
die("you did not enter a database name")
}
$sql="CREATE DATABASE". $databasename."";
$result=$conn->query($sql);
if($result !=false){
echo "Data inserted!";
}
else{
die("Error inserting data");
}
将来,尝试使用PDO连接到您的SQL数据库,PDO连接的一个很好的例子是我留在这里的。