PHP表单没有发布到SQL数据库

时间:2015-02-15 23:11:30

标签: php mysql post phpmyadmin

我正在学习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中:

PHPMyAdmin Table 有没有人看到任何问题?

1 个答案:

答案 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;
}