POST数据未插入sql表

时间:2015-04-27 22:06:36

标签: php html mysql

我正在使用表格。 (我希望消息文本作为文本区域,但更改回普通文本以查看是否存在问题)

这是我正在使用的表格

<form name="addmessage" method="POST" action="addmessage.php" >
    <input type="text" name="message_title" id="message_title">Message Title</input>
    <input type="text" name="message_text" id="message_text">Message</input>
    <input type="submit" name="submit" value = Add> 
  </form>

以下是PHP代码。我知道我需要防止sql注入,但是我可以稍后再这样做。

    <?php
include_once("config.php");
if(isset($_POST["message_title"]) && strlen($_POST["message_title"])>0) 
    {
$message_title=$_POST['message_title'];
$message_text=$_POST['message_text'];
session_start();
$barber_id = $_SESSION['barber_id'];

$insert_row = $mysqli->query("INSERT INTO messages(barber_id,message_title,message_text) VALUES('".$barber_id."','".$message_title."',".$message_text.")");

}
else

{
    //Output error
    header('HTTP/1.1 500 Error You have left it blank');
    exit();
}

header("location:messages.php");
?>  

如果使用phpMyAdmin手动输入数据,我可以使用下面的代码显示它。

include_once("config.php");
        session_start();
        $barber_id = $_SESSION['barber_id'];
        $results = $mysqli->query("SELECT * FROM messages WHERE barber_id ='$barber_id' ");
            //get all records from  table
            while($row = $results->fetch_assoc())
            {
                $prices_id = $row['prices_id'];
                echo '<div data-role="collapsible">';   
                echo '<h1>';
                echo '   Message Title: ';  
                echo $row['message_title'];
                echo '</a>';
                echo '</h1>';
                echo '<p>';
                echo $row['message_text'];
                echo '<a href="delete_price.php?prices_id='.$prices_id.'"  class="ui-btn ui-icon-delete "> Delete</a></div>';
            }
  $mysqli->close();
    ?>

1 个答案:

答案 0 :(得分:0)

$insert_row = $mysqli->query("INSERT INTO messages(barber_id,message_title,message_text) VALUES('".$barber_id."','".$message_title."',".$message_text.")");

你应该写

$insert_row = $mysqli->query("INSERT INTO messages(barber_id,message_title,message_text) VALUES('".$barber_id."','".$message_title."','".$message_text."')");

每次传递String或其他非int值时,都必须按照以下方式传递它们:&#39; xx&#39;否则mysql会将其视为查询参数并崩溃。