问题
我正在尝试使用PHP连接MySQL数据库中的用户输入表单。我正在使用MAMP在本地连接数据库。当我运行代码时,不显示任何内容。下面的代码在名为EventInputForm的文件夹中保存为IndexEventInputForm.php
。在网址中,我有http://localhost:8888/EventInputForm/IndexEventInputForm.php。检查我得到的元素:
代码
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<?php
//===============
// MySQL Settings
//===============
define('DB_NAME', 'EventInputForm');
define('DB_USER', 'root');
define('DB_PASSWORD', '12345678');
define('DB_HOST', 'localhost');
//====================
// Database connection
//====================
//Connect to server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
//Test if connection to database works
if(!$link) {
die('Could not connect to : ' . mysql_error());
}
//Connect to database
$db_selected = mysql_select_db(DB_NAME, $link);
//Test if connection to selected database works
if(!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}
echo 'Connected successfully';
/*
if($conn->connect_error){
die("Failed");
}
$conn.insertInto
echo "Success";
*/
//Send input form data to MySQL database
$Title = $_POST['Title'];
$sql = "INSERT INTO EventInfo (Title) VALUES ('$Title')";
//Checks if the field exists
if(!mysql_query($sql)) {
die('Error: ' . mysql_error());
}
mysql_close();
?>
<body>
<?php
echo $name;
?>
<form action="/EventInputForm/IndexEventInputForm.php" method="POST">
<input type="text" name="Title"/>
<input type="submit" value="indsend">
</form>
</body>
</html>
答案 0 :(得分:1)
我注意到一些问题:
您正在回显变量$ name,但没有这样的变量 在你的剧本中定义。
您正在使用mysql_ *而不是mysqli_ *函数。
要解决这两个问题并帮助您查看结果,请参阅下面的测试示例。 ****请注意:准备好的陈述应该用于制作。
if (!isset($_POST['Title'], $_POST['indsend']))
echo "Submit form below! \n";
else {
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// sanitize user input
$title = $mysqli->real_escape_string($_POST['Title']);
// execute query
$mysqli->query("INSERT INTO EventInfo (Title) VALUES ('$title')");
printf ("New Record has id %d.\n", $mysqli->insert_id);
}
答案 1 :(得分:1)
这样可以更好。
<?php
//===============
// MySQL Settings
//===============
define('DB_NAME', 'EventInputForm');
define('DB_USER', 'root');
define('DB_PASSWORD', '12345678');
define('DB_HOST', 'localhost');
//====================
// Database connection
//====================
//Connect to server
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// Test if connection succeeded
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
//Send input form data to MySQL database
if(isset($_POST['submit'])){
$Title = $_POST['Title'];
$sql = "INSERT INTO EventInfo (Title) VALUES ('{$Title}')";
$result = mysqli_query($link, $sql);
if ($result) {
// Success
echo "Title has been created!";
} else {
// Failure
echo "Failed";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form action="IndexEventInputForm.php" method="POST">
<input type="text" name="Title"/>
<input type="submit" name="submit" value="indsend">
</form>
</body>
</html>
<?php
// Close database connection
if (isset($link)) {
mysqli_close($link);
}
?>
注意:为了简单起见,我删除了一些不必要的回声和字段