我想将数据存储到mysql数据库但是如果按下提交按钮则会显示php页面。
形式:
<div id="test">
<form action="demo.php" method="post">
please enter the number(1 to 100) : <input type="text" name="value">
<input type="submit">
</form>
</div>
demo.php
<?php
$value=$_POST['value'];
$servername = "localhost";
$username = "root";
$password = "*****";
$dbname = "clock";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO input VALUES (".$_POST['value'].")";
if ($conn->query($input) == TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
答案 0 :(得分:0)
将$input
替换为$sql
声明中的if
:
发件人强>
if ($conn->query($input) == TRUE) {
要强>
if ($conn->query($sql) == TRUE) {
注意:由于您要在$_POST['value']
中存储$value
,因此您无需在查询中使用$_POST['value']
,而是使用$value
。
答案 1 :(得分:0)
有一个更正:
更改
if ($conn->query($input) == TRUE) {
要:
if ($conn->query($sql) == TRUE) {
除此之外,还有以下建议:
$ sql =“INSERT INTO input VALUES(”。$ _ POST ['value']。“)”;
此查询没问题,$_POST['value']
的值是整数,但对于字符串,它将创建SQL语法错误。
请更正:
$sql = "INSERT INTO input VALUES ('".$_POST['value']."')";
观察,封闭的半结肠。
2)您只插入一个字段值而不指定字段。这意味着您的表只有字段。通常我们没有只有一个字段的表。
请指定字段名称:
$sql = "INSERT INTO input (field_one) VALUES (".$_POST['value'].")";
答案 2 :(得分:0)
1st:添加名称属性以提交按钮name="submit"
<input name="submit" type="submit">
第二名:使用isset
<{1}}
第3名:尝试使用if(isset($_POST['submit'])){ //rest of code here }
来避免prepared statement or pdo
demo.php
sql injection
答案 3 :(得分:0)
获取此类值
$value=$_REQUEST['value'];
将查询更改为
$sql = "INSERT INTO input VALUES ('$value')";