1048 Spalte Wert darf nicht null sein
Ich bin stecken, kann ich diese Fehler beheben, dass ich immer, und ich denke, es kann sein, dass meine Datenbank-Optionen sind Durcheinander
Hier ist, wo die Daten in eine form
<form name = "quoted" method="post" onsubmit="get_action(this);">
<input id = "poster" type="text" name="poster" required="required" placeholder = "Credited Individual."> <br>
<textarea class = "actual_quote" name = "actual_quote" required="required" placeholder = "Write the question here!"></textarea><br><br><br>
<div class = "checkboxes" required="required">
<h3 style = "margin-top:-20px;">Please select one catagory that the quote falls into.</h3>
<label for="x"><input type="radio" name="x" value="Inspirational" id = "inspirational.php" checked="checked" /> <span>Inspirational</span></label><br>
<label for="x"><input type="radio" name="x" value="Funny" id = "funny.php" /> <span>Funny</span> </label><br>
<label for="x"><input type="radio" name="x" value="OutofContext" id = "outofcontext.php"/> <span>OutofContext</span></label>
</div>
<input id = "submit1" name="submit1"s type="submit"><br>
</form>
und hier ist der php zu legen, die in der Datenbank
<?php
$db_name = 'submissions';
$db_user = 'root';
$db_pass = '';
$db_host = 'localhost';
try {
$db = new PDO('mysql:host = localhost;dbname=submissions', $db_user, $db_pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$actual_quote = (isset($_POST['actual_quote']) ? $_POST['actual_quote'] : null);
$poster = (isset($_POST['poster']) ? $_POST['poster'] : null);
$sql = "INSERT INTO data (actual_quote, poster) VALUES ( :actual_quote, :poster)";
$query = $db->prepare($sql);
$query->execute(array(':actual_quote'=>$actual_quote, ':poster'=>$poster));
?>
( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'actual_quote' darf nicht null sein', in C:\wamp\www\Quotr\webweb2.php in Zeile 113 ( ! ) PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'actual_quote' kann nicht null sein C:\wamp\www\Quotr\webweb2.php on line 113 Call-Stack
Zeit Speicher Funktion Position
1 0.0015 257160 {main}( ) ..\webweb2.php:0 2 0.0206 267672 execute ( ) ..\webweb2.php:113
Wenn ich Sie auf null in der Datenbank, und ich auf den submit-button im Formular der Fehler geht Weg, und Daten in der Datenbank, aber es gibt keine Werte, es gibt nichts
kann mir jemand sagen, was falsch ist und wie man das beheben kann, wenn es in den code, ich persönlich denke, dass es ein Problem mit der Datenbank, hier einige Bilder.
(ignorieren Sie die ersten 3 auf dem letzten Bild, das Letzte ist wo ich bin)
s
nach der "
im name="submit1"s
Sie setzen $actual_quote als null, wenn $_POST['actual_quote'] nicht gesetzt ist... aber auf der Datenbank-Seite haben Sie diese Feld nicht NULL zulassen. Entweder das zulassen von NULL-auf-Datenbank, oder senden Sie eine leere Zeichenfolge (zwei Anführungszeichen), wenn $_POST['actual_quote'] ist nicht gesetzt. Nun... warum $_POST['actual_quote'] ist nicht gesetzt ... das ist ein anderes problem.
InformationsquelleAutor user3731183 | 2014-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist nichts falsch mit der Datenbank. Es tut genau, was es soll, zu tun.
Wenn die Datenbank gibt Ihnen diese Fehler, es sagt Ihnen, dass Sie versuchen, Sie zur Eingabe von "nichts" (null) zu einer Spalte, die nicht zulassen, wird es. Sie senden nichts, denn wenn
$_POST['actual_quote']
ist nicht festgelegt, es ist null. Entweder loswerden, dass Aktion, wenn es nicht gesetzt oder null in der Datenbank.Auch: befreien Sie sich von der
s
nach der"
imname="submit1"s
.InformationsquelleAutor Locke
Sind Sie $actual_quote als null, wenn $_POST['actual_quote'] nicht gesetzt ist... aber auf der Datenbank-Seite haben Sie diese Feld nicht NULL zulassen. Entweder das zulassen von NULL-auf-Datenbank, oder senden Sie eine leere Zeichenfolge (zwei Anführungszeichen), wenn $_POST['actual_quote'] nicht gesetzt ist (wie unten gezeigt).
Sind Sie immer das poster und nicht die actual_quote? oder, Sie sind nicht immer entweder der poster und actual_quote? Sie müssen nun sicherstellen, dass Ihre $poster / $actual_quote hält Sie einen beliebigen Wert oder nicht, bevor Sie Sie an die Datenbank. Scheint, dass isset() auf beiden ausfällt, also leere Werte.
InformationsquelleAutor Nawed Khan
Ich habe vor dem gleichen problem. Der "Feld-name' in der Ansicht-Seite und die Spalte name der Datenbank-war gleichgültig. Mein problem war:
Meine Ansicht-Seite input-tag:
beachten Sie die Schreibweise von 'MoneyMethod' in meiner Datenbank-Tabelle
$table->string('MoneyMethod', 100);
die Rechtschreibung Geld Methode ist dieselbe, wie bei der Seite ansehen, aber in meinem controllerschauen Sie genau die Schreibweise von 'Moneymethod' unterscheidet sich von der Ansicht-Seite und-Datenbank-Tabelle-Spalte. Nach der Korrektur der Rechtschreibung, es funktioniert jetzt.
So, überprüfen Sie die Schreibweise der 'Feld-name' und 'Spalte name der Datenbank-Tabelle" in form -, controller -, model-und Datenbank-Tabelle. Es kann Ihr problem lösen.
InformationsquelleAutor Ziaur Rahman