mysql insert ??
Bunny 17.02.2015 - 15:33 4239 21
mat
AdministratorLegends never die
|
|
Bunny
Addicted
|
gute idee Hier das log von apache : [Tue Feb 17 16:37:43.696411 2015] [:error] [pid 3417] [client 127.0.0.1:59851] PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in /var/www/html/formscript.php on line 36, referer: http://localhost/formular.htmldas heißt hier muss der Fehler sein: if(!$stmt){
die ('Es konnte kein SQL-Query vorbereitet werden: '.db->error);
}
|
Bunny
Addicted
|
@mat du hast recht.. hatte ich noch vergessen raus zunehmen... Hier nochmal der aktuelle Stand des komplettn skripts.. <?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$db = new mysqli('localhost', 'root', 'password', 'database');
if (mysqli_connect_errno()) {
die('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
if('POST' == $_SERVER['REQUEST_METHOD']){
if (!isset($_POST['RechnungsNr'], $_POST['Betrag'], $_POST['Nachname'])) {
die ('Benutzen sie nur Formulare von der Homepage.');
}
if (('' == $rechnungsnr = trim($_POST['RechnungsNr'])) or
('' == $betrag = trim($_POST['Betrag'])) or
('' == $nachname = trim($_POST['Nachname']))) {
die ('Bitte Pflichtfelder ausfuellen.');
}
/*
$vorname = $_POST['Vorname'];
$adresse = $_POST['Adresse'];
$notiz = $_POST['Notiz'];
$datum = $_POST['Datum'];
*/
$sql = "INSERT INTO
calculation(RechnungsNr, Betrag, Nachname)
VALUES
('".$_POST['RechnungsNr']."','".$_POST['Betrag']."','".$_POST['Nachname']."')";
$stmt = $db->prepare($sql);
if(!$stmt){
die ('Es konnte kein SQL-Query vorbereitet werden: ');
}
$stmt->bind_param('ids', $rechnungsnr, $betrag, $nachname);
if(!$stmt->execute()){
die ('Query konnte nicht ausgefuehrt werden: '.$stmt->error);
}
}
?>
In der Datenbank ist RechnungsNr ein Integer Typ, Betrag ein Float Typ und Nachname Varchar .. deshalb ergibt sich bei bind_params('ids'......
Bearbeitet von Bunny am 17.02.2015, 16:51
|
Bunny
Addicted
|
Okay.. ich habs jetzt soweit das apache keine error mehr bringt...
und jetzt bekomm ich beim klicken das Buttons im Formular die Meldung:
Es konnte kein SQL-Query vorbereitet werden:
|
mat
AdministratorLegends never die
|
Immer noch einige Fehler drinnen. Versuch mal das: <?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$db = new mysqli('localhost', 'root', 'password', 'database');
if (mysqli_connect_errno()) {
die('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$rnr = trim($_POST['RechnungsNr']);
$betrag = trim($_POST['Betrag']);
$nachname = trim($_POST['Nachname']);
if (!$rnr || !$betrag || !$nachname) {
die ('Bitte Pflichtfelder ausfuellen.');
}
$stmt = $db->prepare("INSERT INTO calculation(RechnungsNr, Betrag, Nachname) VALUES (?,?,?)");
if(!$stmt){
die ('Es konnte kein SQL-Query vorbereitet werden: '.$db->error);
}
$stmt->bind_param('ids', $rnr, $betrag, $nachname);
if(!$stmt->execute()){
die ('Query konnte nicht ausgefuehrt werden: '.$stmt->error);
}
}
?>
|
Bunny
Addicted
|
|
Nico
former person of interest
|
..obwohl es so eine schöne offizielle doku zu php auf php.net gibt..
|