$_POST 未插入数据库 - PHP MySQL
$_POST not inserting into database - PHP MySQL
这是我的 HTML 表单,用于将数据添加到 table:
<div class="TTWForm-container">
<div id="form-title" class="form-title field"><h2>ახალი სტატია</h2></div>
<form enctype="multipart/form-data" action="index.php?link=addart" class="TTWForm ui-sortable-disabled" method="post">
<div id="field2-container" class="field f_100 ui-resizable-disabled ui-state-disabled">
<label for="title">სათაური</label>
<input name="title" id="title" required="required" type="text">
</div>
<div id="field10-container" class="field f_100 ui-resizable-disabled ui-state-disabled">
<label for="post">
სტატია
</label>
<textarea rows="15" cols="40" name="post" id="post" required="required"></textarea>
</div>
<div id="form-submit" class="field f_100 clearfix submit">
<input value="დამატება" type="submit" id="submit">
</div>
</form>
</div>
处理中
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['post'])) {$post = $_POST['post'];}
<?php
if (isset($title) && isset($post))
{
/*can add post */
$insert = "INSERT INTO article ('title','post') VALUES ('$title','$post')";
$result = mysqli_query($connect,$insert);
if ($result == 'true') {echo "<p>post is added.</p>";}
else {echo "<p>post is not added.</p>";}
}
else
{
echo "<p>Fill all fields.</p>";
}
?>
处理后总是说没有添加post。检查数据库及其真实性。找不到错误。请帮忙。谢谢
布尔比较
首先,检查你的比较。 mysqli_query
returns 布尔值 true
或 false
,不是字符串 'true' 或 'false.' 而不是:
if ($result == 'true')
使用
if ($result == true)
甚至:
if ($result)
调试查询
接下来,检查查询本身是否有错误。作为 Fred ,您应该用反引号而不是单引号标记您的列名:
INSERT INTO article (`title`,`post`)
考虑记录 mysqli_error 的输出,或尝试回显您的查询并 运行 手动对数据库进行查询。您可能会发现他们的查询有隐藏的语法或数据错误,这些错误在代码中并不明显。
发布值
接下来,检查您从 $_POST
获取的值。 $_POST['post']
设置了吗?有没有什么实用价值?
数据库连接
最后,检查数据库连接本身。你真的连接了吗?您是否有关于连接尝试的调试日志记录或输出?
所以只需更改:
else
{
echo "<p>post is not added</p>";
}
至:
else
{
echo "<p>MySQL error:".mysqli_error($connect)."</p>";
}
这是为您准备的声明。
$link = new MySQLi('localhost','username','password','database');
if(isset($_POST['title'],$_POST['post'])&& $_POST['title'] !="" && $_POST['post'] !=""){
$title = $_POST['title'];
$post = $_POST['post'];
if($query = $link->prepare('INSERT INTO article (title,post) VALUES(?,?)')){
$query->bind_param('ss',$title,$post);
$query->execute();
$query->close();
echo 'Success!';
}else{
echo 'Failure!';
}
}else{
echo 'You missed a field!';
}
这是我的 HTML 表单,用于将数据添加到 table:
<div class="TTWForm-container">
<div id="form-title" class="form-title field"><h2>ახალი სტატია</h2></div>
<form enctype="multipart/form-data" action="index.php?link=addart" class="TTWForm ui-sortable-disabled" method="post">
<div id="field2-container" class="field f_100 ui-resizable-disabled ui-state-disabled">
<label for="title">სათაური</label>
<input name="title" id="title" required="required" type="text">
</div>
<div id="field10-container" class="field f_100 ui-resizable-disabled ui-state-disabled">
<label for="post">
სტატია
</label>
<textarea rows="15" cols="40" name="post" id="post" required="required"></textarea>
</div>
<div id="form-submit" class="field f_100 clearfix submit">
<input value="დამატება" type="submit" id="submit">
</div>
</form>
</div>
处理中
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['post'])) {$post = $_POST['post'];}
<?php
if (isset($title) && isset($post))
{
/*can add post */
$insert = "INSERT INTO article ('title','post') VALUES ('$title','$post')";
$result = mysqli_query($connect,$insert);
if ($result == 'true') {echo "<p>post is added.</p>";}
else {echo "<p>post is not added.</p>";}
}
else
{
echo "<p>Fill all fields.</p>";
}
?>
处理后总是说没有添加post。检查数据库及其真实性。找不到错误。请帮忙。谢谢
布尔比较
首先,检查你的比较。 mysqli_query
returns 布尔值 true
或 false
,不是字符串 'true' 或 'false.' 而不是:
if ($result == 'true')
使用
if ($result == true)
甚至:
if ($result)
调试查询
接下来,检查查询本身是否有错误。作为 Fred
INSERT INTO article (`title`,`post`)
考虑记录 mysqli_error 的输出,或尝试回显您的查询并 运行 手动对数据库进行查询。您可能会发现他们的查询有隐藏的语法或数据错误,这些错误在代码中并不明显。
发布值
接下来,检查您从 $_POST
获取的值。 $_POST['post']
设置了吗?有没有什么实用价值?
数据库连接
最后,检查数据库连接本身。你真的连接了吗?您是否有关于连接尝试的调试日志记录或输出?
所以只需更改:
else
{
echo "<p>post is not added</p>";
}
至:
else
{
echo "<p>MySQL error:".mysqli_error($connect)."</p>";
}
这是为您准备的声明。
$link = new MySQLi('localhost','username','password','database');
if(isset($_POST['title'],$_POST['post'])&& $_POST['title'] !="" && $_POST['post'] !=""){
$title = $_POST['title'];
$post = $_POST['post'];
if($query = $link->prepare('INSERT INTO article (title,post) VALUES(?,?)')){
$query->bind_param('ss',$title,$post);
$query->execute();
$query->close();
echo 'Success!';
}else{
echo 'Failure!';
}
}else{
echo 'You missed a field!';
}