列 'title' 不能为空
Column 'title' cannot be null
我有一个网站,人们可以在其中插入自己的博客。
但是当你按下发送按钮创建自己的博客时出现错误
第 'AccountID' 列不能为空。
我尝试创建的新博客也没有出现在我的 phpmyadmin 中。
这是我的php
<?php
session_start();
require_once ("includes/dbconnect.inc.php");
require_once ("includes/functions.inc.php");
$BlogID = "";
$BlogTitel = "";
$Tekst = "";
$AccountID = "";
/* Een bestaand blog aanpassen */
if (isset($_GET["bid"])) {
$BlogID = $_GET["bid"];
//query 1 bepaalde blog opvragen
//vraagteken wordt door een waarde vervangen binnen de if
$qrySelectBlog =
"SELECT BlogTitel, Tekst
FROM tblBlog
WHERE BlogID = ?";
//query voorbereiden : kijken of die correct is
if($stmt = mysqli_prepare($dbconnect, $qrySelectBlog)) {
//variabele verbinden aan de parameters (de vraagtekens)
//door het type van de variabele mee te geven, zit er extra beveiliging ingebouwd
mysqli_stmt_bind_param($stmt, "i", $BlogID);
//query uitvoeren
mysqli_stmt_execute($stmt);
//waarden koppelen aan variabelen
mysqli_stmt_bind_result($stmt, $BlogTitel, $Tekst);
//waarden van 1 record in de variabelen stoppen
//mogelijk omdat je zeker bent dat je gegevens hebt van slechts 1 record
mysqli_stmt_fetch($stmt);
//resultset sluiten
mysqli_stmt_close($stmt);
}
}
if ($_SERVER['REQUEST_METHOD'] == "POST") { //formulier is verzonden
$BlogID = $_POST["BlogID"];
$BlogTitel = $_POST["BlogTitel"];
$Tekst = $_POST["Tekst"];
$AccountID = $_POST["AccountID"];
//controleren op verplichte velden
if (!empty($BlogTitel) && !empty($Tekst)) {
if(!isset($fout)) {
//alles in orde, verder met verwerking
//tekst voorbereiden om toe te voegen aan de DB
$BlogTitel = prepText($BlogTitel);
$Tekst = prepText($Tekst);
//controleren of het om een bestaand blog gaat
if($BlogID == ""){
//nieuwe Blog
$qryInsertBlog =
"INSERT INTO tblBlog (AccountID, BlogID, BlogTitel, Tekst)
VALUES (?, ?, ?, ?)";
if($stmt = mysqli_prepare($dbconnect, $qryInsertBlog)) {
mysqli_stmt_bind_param($stmt, "iiss", $AccountID, $BlogID, $BlogTitel, $Tekst);
if(mysqli_stmt_execute($stmt)) {
//query succesvol uitgevoerd
$feedback = "<p>Toevoegen van jouw blog was succesvol</p>";
} else {
//query niet succesvol uitgevoerd
$fout = "<p>Het toevoegen van de blog is mislukt</p>";
$fout .= mysqli_stmt_error($stmt);
}
} //if($stmt
} else { //if($blogID
//bestaand Blog
$qryUpdateBlog =
"UPDATE tblBlog
SET BlogTitel = ?, Tekst = ?,
WHERE BlogID = ?";
if($stmt = mysqli_prepare($dbconnect, $qryUpdateBlog)) {
mysqli_stmt_bind_param($stmt, "ssi", $BlogTitel, $Tekst, $BlogID);
if(mysqli_stmt_execute($stmt)) {
//query succesvol uitgevoerd
$feedback = "<p>Aanpassen van de blog was succesvol</p>";
} else {
//query niet succesvol uitgevoerd
$fout = "<p>Het aanpassen van de blog is mislukt</p>";
$fout .= mysqli_stmt_error($stmt);
}
} //if($stmt
}
} //if(!isset($fout))
} else { //if (!empty($BlogTitel)
//niet alle verplichte velden zijn ingevuld
$fout = "<p>U hebt niet alle verplichte velden ingevuld</p>";
} //if (!empty($BlogTitel)
} //if ($_SERVER['REQUEST_METHOD']
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Toevoegen Blog</title>
<link rel="stylesheet" type="text/css" href="CSS/index.css">
<link rel="stylesheet" type="text/css" href="CSS/index.css">
</head>
<body>
<form id="addBlog" name="addBlog" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<?php
if(isset($fout)) {
echo $fout;
} elseif(isset($feedback)) {
echo $feedback;
}
?>
<input type="hidden" name="BlogID" value="<?php echo $BlogID;?>">
<label for="BlogTitel">Blog Naam</label>
<input type="text" id="naam" name="BlogTitel" placeholder="Blog Titel" required value="<?php echo $BlogTitel;?>">
<label for="Tekst">Tekst</label>
<textarea name="Tekst" id="Tekst" placeholder="De tekst voor jouw blog" required><?php echo $Tekst;?></textarea>
<input type="submit" id="submit" name="submit" value="Verzenden">
</form>
</body>
</html>
这是因为您将 $_POST['AccountID'] 发布为空值,而在您的数据库中不允许保存空值。
将 $_POST['AccountID'] 设置为某个值或允许数据库中的此字段为空。
我有一个网站,人们可以在其中插入自己的博客。 但是当你按下发送按钮创建自己的博客时出现错误
第 'AccountID' 列不能为空。
我尝试创建的新博客也没有出现在我的 phpmyadmin 中。
这是我的php
<?php
session_start();
require_once ("includes/dbconnect.inc.php");
require_once ("includes/functions.inc.php");
$BlogID = "";
$BlogTitel = "";
$Tekst = "";
$AccountID = "";
/* Een bestaand blog aanpassen */
if (isset($_GET["bid"])) {
$BlogID = $_GET["bid"];
//query 1 bepaalde blog opvragen
//vraagteken wordt door een waarde vervangen binnen de if
$qrySelectBlog =
"SELECT BlogTitel, Tekst
FROM tblBlog
WHERE BlogID = ?";
//query voorbereiden : kijken of die correct is
if($stmt = mysqli_prepare($dbconnect, $qrySelectBlog)) {
//variabele verbinden aan de parameters (de vraagtekens)
//door het type van de variabele mee te geven, zit er extra beveiliging ingebouwd
mysqli_stmt_bind_param($stmt, "i", $BlogID);
//query uitvoeren
mysqli_stmt_execute($stmt);
//waarden koppelen aan variabelen
mysqli_stmt_bind_result($stmt, $BlogTitel, $Tekst);
//waarden van 1 record in de variabelen stoppen
//mogelijk omdat je zeker bent dat je gegevens hebt van slechts 1 record
mysqli_stmt_fetch($stmt);
//resultset sluiten
mysqli_stmt_close($stmt);
}
}
if ($_SERVER['REQUEST_METHOD'] == "POST") { //formulier is verzonden
$BlogID = $_POST["BlogID"];
$BlogTitel = $_POST["BlogTitel"];
$Tekst = $_POST["Tekst"];
$AccountID = $_POST["AccountID"];
//controleren op verplichte velden
if (!empty($BlogTitel) && !empty($Tekst)) {
if(!isset($fout)) {
//alles in orde, verder met verwerking
//tekst voorbereiden om toe te voegen aan de DB
$BlogTitel = prepText($BlogTitel);
$Tekst = prepText($Tekst);
//controleren of het om een bestaand blog gaat
if($BlogID == ""){
//nieuwe Blog
$qryInsertBlog =
"INSERT INTO tblBlog (AccountID, BlogID, BlogTitel, Tekst)
VALUES (?, ?, ?, ?)";
if($stmt = mysqli_prepare($dbconnect, $qryInsertBlog)) {
mysqli_stmt_bind_param($stmt, "iiss", $AccountID, $BlogID, $BlogTitel, $Tekst);
if(mysqli_stmt_execute($stmt)) {
//query succesvol uitgevoerd
$feedback = "<p>Toevoegen van jouw blog was succesvol</p>";
} else {
//query niet succesvol uitgevoerd
$fout = "<p>Het toevoegen van de blog is mislukt</p>";
$fout .= mysqli_stmt_error($stmt);
}
} //if($stmt
} else { //if($blogID
//bestaand Blog
$qryUpdateBlog =
"UPDATE tblBlog
SET BlogTitel = ?, Tekst = ?,
WHERE BlogID = ?";
if($stmt = mysqli_prepare($dbconnect, $qryUpdateBlog)) {
mysqli_stmt_bind_param($stmt, "ssi", $BlogTitel, $Tekst, $BlogID);
if(mysqli_stmt_execute($stmt)) {
//query succesvol uitgevoerd
$feedback = "<p>Aanpassen van de blog was succesvol</p>";
} else {
//query niet succesvol uitgevoerd
$fout = "<p>Het aanpassen van de blog is mislukt</p>";
$fout .= mysqli_stmt_error($stmt);
}
} //if($stmt
}
} //if(!isset($fout))
} else { //if (!empty($BlogTitel)
//niet alle verplichte velden zijn ingevuld
$fout = "<p>U hebt niet alle verplichte velden ingevuld</p>";
} //if (!empty($BlogTitel)
} //if ($_SERVER['REQUEST_METHOD']
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Toevoegen Blog</title>
<link rel="stylesheet" type="text/css" href="CSS/index.css">
<link rel="stylesheet" type="text/css" href="CSS/index.css">
</head>
<body>
<form id="addBlog" name="addBlog" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<?php
if(isset($fout)) {
echo $fout;
} elseif(isset($feedback)) {
echo $feedback;
}
?>
<input type="hidden" name="BlogID" value="<?php echo $BlogID;?>">
<label for="BlogTitel">Blog Naam</label>
<input type="text" id="naam" name="BlogTitel" placeholder="Blog Titel" required value="<?php echo $BlogTitel;?>">
<label for="Tekst">Tekst</label>
<textarea name="Tekst" id="Tekst" placeholder="De tekst voor jouw blog" required><?php echo $Tekst;?></textarea>
<input type="submit" id="submit" name="submit" value="Verzenden">
</form>
</body>
</html>
这是因为您将 $_POST['AccountID'] 发布为空值,而在您的数据库中不允许保存空值。
将 $_POST['AccountID'] 设置为某个值或允许数据库中的此字段为空。