表单输入在MySQL数据库中保存为“1”

时间:2015-07-04 07:37:26

标签: php html mysql forms localhost

我在PHP中使用以下代码来测试将数据从简单的Web表单保存到MySQL中。表单有两个接受文本的基本框:input1和input2。当我完成这些并点击提交时,没有问题。但是,当我在MySQL中访问数据库时,我只看到'1',我应该看到我输入的实际文本。起初我认为这个行为就像一个布尔值但两个字段都设置为接受VARCHAR(并设置为null)。无论我是否在表单中输入文本,都会显示1。

非常基本的HTML表单:

<form action="signupform.php" method="post" />
<p> Input 1: <input type="text" name="input1" /></p>
<p> Input 2: <input type="text" name="input2" /></p>
<input type="submit" value="Submit" />
</form>

这是使用的PHP:

$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME);

if (!$connection) {
    die('Could not connect: ' . mysqli_connect_error());
}

$connection_selected = mysqli_select_db($connection, 'demo');

if (!$connection_selected) {
    die('Can\'t use ' . 'DB_NAME' . ': ' . mysqli_error($connection));
}

echo 'Connected successfully';

$value1 = isset($_POST['input1']);
$value2 = isset($_POST['input2']);

$sql = "INSERT INTO form1 (input1, input2) VALUES ('$value1', '$value2')";
if (!mysqli_query($connection, $sql)) {
    die('Error: ' . mysqli_error($connection));
}

mysqli_close($connection);

?>

感谢帮助。

1 个答案:

答案 0 :(得分:3)

你在这里做错了什么

$value1 = isset($_POST['input1']);
$value2 = isset($_POST['input2']);

你在这里做的是,你要保存布尔值。变量$value1&amp;分别为$value2。那是True = 1&amp; False = 0并且您将其插入数据库。难怪你在数据库中有0和1。

if(isset($_POST['input1']) && isset($_POST['input2'])){
   $value1 = $_POST['input1'];
   $value2 = $_POST['input2'];
}

这样做