我有这些代码但是当我尝试这些代码时,我得到了:
SQLSTATE [23000]:完整性约束违规:1048列“post”不能为null 这个错误。
我找不到任何解决方案。我尝试了另外一些功能,这些功能是他们工作的,但是这个功能不起作用。
?>
<form method="post">
Buraya yaz <br><textarea style="resize:none" name="post"></textarea> <br><input type="submit" value="Gönder">
</form>
<?php
if(empty($_POST['post'])){
echo 'you should fill the area.';
exit;
}
if (empty($errors) === true) {
$users->sendpost($post);
}
?>
public function sendpost($post){
$query = $this->db->prepare("INSERT INTO `posts` (`post`) VALUES (?) ");
$query->bindValue(1, $post);
try{
$query->execute();
}catch(PDOException $e){
die($e->getMessage());
}
}
答案 0 :(得分:1)
插入$ post = $ _POST ['post'];
$post = $_POST['post'];
if(empty($_POST['post'])){
echo $errors[] = 'you should fill the area.';
}
if (empty($errors) === true){
$users->sendpost($post);
}
答案 1 :(得分:0)
其中一个问题是您正在显示错误但没有对此做任何事情。将其更改为:
if(empty($_POST['post'])){
echo 'you should fill the area.';
exit;
}
但是,作为主要建议,您应该使用可以捕获的异常:
if(empty($_POST['post'])){
throw new Exception("You should fill the area.");
}
这不是唯一的错误,如@RocketHazmat的评论中所述。如果你不明白他在说什么,你应该$users->sendpost($_POST);
而不是$users->sendpost($post);
。
答案 2 :(得分:0)
我面临同样的问题。 &#39;字段名称&#39;在视图页面中,数据库的列名称不同。我的问题是:
"Integrity constraint violation: 1048 Column 'MoneyMethod' cannot be null"
。
我的表单输入标记为{!! Form::select("MoneyMethod", $MoneymethodInfo, null,["class"=>"form-control MoneyMethod required","id"=>"MoneyMethod"]) !!}
,请注意&#39; MoneyMethod&#39;的拼写。并在我的数据库表$table->string('MoneyMethod', 100);
中拼写了MoneyMethod&#39;与表单相同,但在我的控制器中$riskfund->Moneymethod = Input::get('Moneymethod');
仔细查看“Moneymethod&#39;与视图页面和数据库表列不同。纠正拼写后,它现在正在运行。
所以,请检查&#39; post&#39;的拼写。在表单,控制器,数据库表中。它可能对你有所帮助。