我使用表单发布到具有列名ID(自动递增,INT),标题(VARCHAR(30)),日期发布(TEXT(10)),内容(TEXT)和标签(文本)。当我提交表单时,我希望带有名称标题的输入转到标题,dateposted到dateposted等。先谢谢。
<form action="insert.php" method="post">
<fieldset>
<legend>Title</legend>
<input type="text" placeholder="title" name="title"/>
<input type="text" placeholder="mm-dd-yyyy" name="dateposted"/>
</fieldset>
<fieldset>
<legend>Content</legend>
<textarea placeholder="content" name="content"> </textarea>
</fieldset>
<fieldset>
<legend>Tags</legend>
<input type="text" placeholder="tags" name="tags"/>
</fieldset>
<fieldset>
<input type="submit" value="Submit" />
</fieldset>
</form>
当我只有以下几行代码时,我得到了未定义的索引错误,尽管它仍然在数据库中创建了一行而没有任何内容。 (标题/内容/日期/标签没有任何东西,但有一个新的ID行)
$title = $_POST['title'];
$dateposted = $_POST['dateposted'];
$content = $_POST['content'];
$tags = $_POST['tags'];
echo $title;
echo $dateposted;
echo $content;
echo $tags;
$sqli = "INSERT INTO posts
(title, dateposted, content, tags)
VALUES
('$title','$dateposted', '$content', '$tags')";
if (!mysqli_query($link, $sqli)){
die('Error: ' . mysqli_error($link));
}
如果我使用if isset函数,它会修复错误,但不会在数据库中创建新行。
if(isset($_POST['title'])){
$title = $_POST['title'];
$dateposted = $_POST['dateposted'];
$content = $_POST['content'];
$tags = $_POST['tags'];
echo $title;
echo $dateposted;
echo $content;
echo $tags;
$sqli = "INSERT INTO posts
(title, dateposted, content, tags)
VALUES
('$title','$dateposted', '$content', '$tags')";
if (!mysqli_query($link, $sqli)){
die('Error: ' . mysqli_error($link));
}
}
答案 0 :(得分:1)
将插入查询替换为:
INSERT INTO posts
(`title`, `dateposted`, `content`, `tags`)
VALUES
('".$title."','".$dateposted."', '".$content."', '".$tags."')";
答案 1 :(得分:0)
检查你的sql语句。应该很好地引用php变量。
import-csv -path $filepath (import only rows 18-260) | select (blah blah blah)