我正在学习PHP并尝试制作一个发布到MySQL数据库的简单表单。没有错误,但看起来我的数据库中没有任何内容。你看到有什么问题吗?
HTML表单:
<form action="posts.php" method="post" />
<p>Input 1: <input type="text" name ="input1" /></p>
<input type="submit" value="Submit" />
</form>
PHP:
<?php
define('DB_NAME', 'kindnesstraintest');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$value = $_POST['input1'];
$sql = "INSERT INTO demo (input1) VALUES ('$value')";
?>
PHPMyAdmin中:
有没有人看到任何问题?
答案 0 :(得分:0)
您应首先进行测试以确保您的连接类似......
<?php
$link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if($link->connect_error){
trigger_error('Database connection failure: ' . $link->connect_error, E_USER_ERROR);
}
如果确实通过了,那么您构建了查询并使用&#34;查询&#34;运行它。功能如此...
// first protect against sql injection
$value="'" . $link->real_escape_string($_POST['input1']) . "'";
// pass cleaned var to query setup
$sql = "INSERT INTO demo (input1) VALUES ($value)";
// execute query
$link->query($sql);
您还可以测试运行此操作的查询,而不是上面的最后一行...
if($link->query($sql) === false) {
trigger_error('Query Failed: ' . $sql . ' Error: ' . $link->error, E_USER_ERROR);
}
else {
// it worked... you can get the id of the item if you need it
$inserted_id = $link->insert_id;
}