2017-08-02 89 views
0

我想將數據存儲到mysql數據庫,但如果我按提交按鈕,它會顯示php頁面。將數據存儲在mysql中

形式:在if聲明

<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(); 
?> 
+1

您處於危險之中,意味着SQL注入。 但是對於你的回答,你的查詢將會是'$ input ='INSERT INTO input(value)VALUES(''。$ value。''')「;' 不要使用Mysql關鍵詞作爲你的表名。使用另一個。 – Virb

+0

原始的php代碼是顯示的嗎? – JYoThI

回答

0

更換$input$sql

if ($conn->query($input) == TRUE) { 

if ($conn->query($sql) == TRUE) { 


注:因爲你是在$value存儲$_POST['value'],你並不需要在查詢中使用$_POST['value'],而不是利用$value

0

有一個修正:

變化

if ($conn->query($input) == TRUE) {

要:

if ($conn->query($sql) == TRUE) {

伴隨着的是,以下是建議:

$ SQL =「插 INTO輸入VALUES(「。$ _ POST ['value']。」)「;

此查詢無誤,值爲$_POST['value']爲整數,但對於字符串,則會創建SQL語法錯誤。

請更正此於:

$sql = "INSERT INTO input VALUES ('".$_POST['value']."')"; 

觀察,封閉的分號。

2)您只插入一個字段值,不指定字段。這意味着你的表只有字段。通常我們沒有隻有一個字段的表格。

請註明字段名稱:

$sql = "INSERT INTO input (field_one) VALUES (".$_POST['value'].")"; 
0

1:添加name屬性提交按鈕name="submit"

<input name="submit" type="submit"> 

第二:使用isset這樣if(isset($_POST['submit'])){ //rest of code here }

3:嘗試使用prepared statement or pdo避免sql injection

demo.php

<?php 

    $servername = "localhost"; 
    $username = "root"; 
    $password = "*****"; 
    $dbname = "clock"; 

    $conn = new mysqli($servername, $username, $password, $dbname); 

    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    if(isset($_POST['submit'])){ 

     $stmt = $conn->prepare("INSERT INTO input(value) VALUES (?)"); 
     $stmt->bind_param('s',$_POST['value']); 

     //The argument may be one of four types: 

      //i - integer 
      //d - double 
      //s - string 
      //b - BLOB 
      //change it by respectively 

     if ($stmt->execute() == TRUE && $stmt->affected_rows>0) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: <br>" . $conn->error; 
     } 
    } 

    $conn->close(); 

?> 
0

獲取值這樣

$value=$_REQUEST['value']; 

查詢更改爲

$sql = "INSERT INTO input VALUES ('$value')";