-
Gut. Was ist laut Doku der 2te Paramter bei mysqli-stmt-bind-param()? Jepp, auch den hast du vergessen.
Nachtrag:Procedural style:
bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] )
...
Parameter-Liste
stmt
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebens Statementobjekt.
types
A string that contains one or more characters which specify the types for the corresponding bind variables:
Type specification chars Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets
var1
The number of variables and length of string types must match the parameters in the statement.
Ps. Ich habe noch nie mit mysqli gearbeitet - aber ich schaue mir die Doku an und sehe was an welcher Stelle verlangt wird---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ja ich habe leider noch verständniss Porbleme, da ich ein absoluter Anfänger bin

Aber ich will es halt lernen...
Vielleicht kannst du mir ja noch mal helfen, nun werden mir keine Fehlermeldungen mehr angegeben, jedoch werden die geänderten Daten nicht gespeichert.
PHP-Code:if(isset($_POST["speichern"])){
//das Statement vorbereiten, somit werden eigentlich nur die Daten zurückgeschicktn, die verändert wurden.
$stmt = mysqli_prepare($res, 'UPDATE Kundendaten SET ID="?", Firma="?", Nachname="?", Vorname="?", Strasse="?", Hausnummer="?", PLZ="?", Ort="?", Telefonnummer="?", Fax="?", Mail="?", Datum="?" WHERE (ID ="?")');
//Parameter daran binden
mysqli_bind_param($stmt,'sssssssssssss', $Firma, $Nachname, $Vorname, $Strasse, $Hausnummer, $PLZ, $Ort, $Telefonnummer, $Fax, $Mail, $Datum);
$ID= $_POST["ID"];
$Firma= $_POST["Firma"];
$Nachname = $_POST["Nachname"];
$Vorname = $_POST["Vorname"];
$Strasse = $_POST["Strasse"];
$Hausnummer = $_POST["Hausnummer"];
$PLZ = $_POST["PLZ"];
$Ort = $_POST["Ort"];
$Telefonnummer = $_POST["Telefonnummer"];
$Fax = $_POST["Fax"];
$Mail = $_POST["Mail"];
$Datum = $_POST["Datum"]; $Firma= $_POST["Firma"];
//prepared ausführen
mysqli_execute($stmt);
//statement schließen
#mysqli_stmt_close();
mysqli_query($stmt);
include("Abfrage.php"); //öffnen die if-abfragen, wegen der Formularfelder
//verhindert gewünschte Sonderzeichen
$ID = preg_replace('/(<|>)/', '', $ID);
$Firma = preg_replace('/(<|>)/', '', $Firma);
$Nachname = preg_replace('/(<|>)/', '', $Nachname);
$Vorname = preg_replace('/(<|>)/', '', $Vorname);
$Strasse = preg_replace('/(<|>)/', '', $Strasse);
$Hausnummer = preg_replace('/(<|>)/', '', $Hausnummer);
$PLZ = preg_replace('/(<|>)/', '', $PLZ);
$Ort = preg_replace('/(<|>)/', '', $Ort);
$Telefonnummer = preg_replace('/(<|>)/', '', $Telefonnummer);
$Fax = preg_replace('/(<|>)/', '', $Fax);
$Mail = preg_replace('/(<|>)/', '', $Mail);
$Datum = preg_replace('/(<|>)/', '', $Datum); }
//Verbindung schließen
mysqli_close($res);
-
item: Warum definierst du 13 Strings wo du doch 'nur' 11 Parameter hast?
item: Schau nochmals das Beispiel in der Doku an. Mit dem 2ten Parameter übergibst du dem mysqli um was für ein Typ es sich handelt. Dann musst du im SQL die ? nicht noch zusätzlich in "" setzen. Das macht mysqli für dich
item: Warum ist dein erstes und letztes ? im SQL die id, bei mysqli_bind_param() aber nicht mehr. Ergo auch die ID übergeben
item: Die id wird numerisch sein. also auch so behandeln
item: Warum setzt du auf der letzten Zeile wo du die Variable $datum abfüllst auch nochmals die $Firma ab?
item: Wenn du ein Update mit dem Schlüssel ID durchführst, musst du die ID nicht mehr überschreiben
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
$sql = <<<SQL UPDATE Kundendaten SET Firma = ?, Nachname = ?, Vorname = ?, Strasse = ?, Hausnummer = ?, PLZ = ?, Ort = ?, Telefonnummer = ?, Fax = ?, Mail = ?, Datum = ? WHERE ID = ? SQL; $stmt = mysqli_prepare($res, $sql); mysqli_bind_param($stmt,'sssssssssssi', $Firma, $Nachname, $Vorname, $Strasse, $Hausnummer, $PLZ, $Ort, $Telefonnummer, $Fax, $Mail, $Datum, $ID );
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Fatal Error
Von Sasser im Forum PHPAntworten: 4Letzter Beitrag: 18.01.11, 23:01 -
error LNK2019 & fatal error LNK1120
Von HORNSWOGGLE im Forum C/C++Antworten: 4Letzter Beitrag: 24.11.09, 16:31 -
Möglich einen Fatal Error abzufangen und darzustellen?
Von ThirdKeeper im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 10.01.09, 11:45 -
Fatal Error
Von Soapp im Forum PHPAntworten: 2Letzter Beitrag: 15.10.06, 19:49



1Danke


Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren