我正在尝试用一些表创建数据库,表中的值并在phpMyAdmin中检查它们。我能够创建表和数据库,但不能创建值
2。)当我添加isset $_post['submit']
变量时,单击提交按钮时,没有任何内容被创建。我没有看到语法错误吗?
<html>
<body>
<p> welcome to my Page
Please insert the data below
<br>
<br>
<form action="input.php" method="post">
<p> Name: <input type="text" name="name">
<p> Age: <input type="text" name="age">
<p> Address: <input type="text" name="address">
<p> Email: <input type="text" name="email">
<input type="submit" value="Send!" name="submit">
</form>
<?php
if(isset($_POST['submit'])){
//connects to the sql database
$con = mysql_connect("localhost", "willc86", "tigers330");
if (!$con) {
echo 'can not connect to Database' . "<br>";
}
//creates the database in mySQL
$db = mysql_query("CREATE DATABASE form");
if (!$db) {
echo 'Did not create database';
}
//select the database and connect to it. on where you want to create tables.
mysql_select_db("form", $con);
//create the table once "form database" is selected
$table = "CREATE TABLE users (
Name varchar(30),
Age varchar(30),
Address varchar(30),
Email varchar(30)
)";
mysql_query($table,$con);
//insert the data from the form
$value= "INSERT INTO users (Name, Age, Address, Email)
VALUES ('$_POST[name]','$_POST[age]','$_POST[address]','$_POST[email]')";
mysql_query($value,$con);
mysql_close();
}//end of submit
?>
</body>
</html>
答案 0 :(得分:0)
你的表单操作是input.php,你的文件是否也叫做input.php?否则,当您提交表单而不是在页面上执行PHP时,您将执行input.php。
答案 1 :(得分:0)
我认为用户willc86没有创建数据库的访问权限。
第二,你的脚本不正确,因为它为每个“用户添加”操作运行并尝试创建数据库和表。
您可以在phpadmin中创建一次,并在脚本中仅使用插入。
答案 2 :(得分:0)
在此突出显示特定错误没有意义,因为其他人不太可能有完全相同的问题。最好只为您提供调试问题的工具/方法。
而不是:
mysql_query($table,$con);
尝试:
$res = mysql_query($table,$con);
if($res === false){
throw new Exception(mysql_error($conn));
}
更好的是,使用PDO。
答案 3 :(得分:0)
首先,如果此文件名为input.php
,您的代码就可以了。可能没有什么理由,一个是你有不正确的凭据,第二个是用户没有权利创建表,因为它转到Phpmyadmin并给予用户所有权利。
其次,最重要的是,使用Prepared语句或mysqli,否则你很容易受到SQL注入
为此,请阅读这篇文章