Blabliblubs
Mitglied
Hallo,
wahrscheinlich ein sehr gängiger Fehler. Nur finde ich den Syntaxfehler nicht. Der Code funktioniert
Mit der Ausgabe
Nun geht es darum, dass meine Einträge noch viel größer werden. Am Ende brauch ich um die 250 Platzhalter für ein Formular. Ich hatte alles auch soweit fertig dann sind mir die Fehlermeldung um die Ohren geflogen. Also taste ich mich nun langsam ran. Aber schon nach den neuen 'ersten 40' kommt die Fehlermeldung:
Der Code:
Sieht jmd den Fehler?
Gruß
wahrscheinlich ein sehr gängiger Fehler. Nur finde ich den Syntaxfehler nicht. Der Code funktioniert
PHP:
<?php
// *****************************************************************************************************************************************
// **** Prepared Statements ************************************************************************************************************
// *****************************************************************************************************************************************
if (isset($_POST['StudieID'])) //&& (int)$_POST['GebTag'] > 0 && (int)$_POST['GebMonat'] > 0 &&
//(int)$_POST['GebJahr'] > 0 && (int)$_POST['Age'] && isset($_POST['Geschlecht']) && (int)$_POST['dauer'] > 0 )
{
try {
$Datenbank = new MySQLi('localhost', 'root', '', 'base');
echo 'Verbindung offen.<br />';
$sql = " INSERT INTO diagnoseprotokoll(StudieID, GebTag,
GebMonat, GebJahr, Age,
Geschlecht, Diagnosenanzahl)
VALUES(
?,?,?,
?,?,?,
?)";
$Kommando = $Datenbank->prepare($sql);
echo var_dump($Kommando);
echo var_dump($Datenbank->error);
$Kommando->bind_param(
'siiiisi',
$_POST['StudieID'], $GebTag, $GebMonat, $GebJahr, $Age, $_POST['Geschlecht'], $Diagnosenanzahl );
$GebTag = (int)$_POST['GebTag']; $GebMonat = (int)$_POST['GebMonat']; $GebJahr = (int)$_POST['GebJahr'];
$Age = (int)$_POST['Age'];
$Diagnosenanzahl = (int)$_POST['Diagnosenanzahl'];
$Kommando->execute();
echo 'SQL geschickt. <br />';
echo $Kommando->affected_rows . ' Zeilen betroffen. <br />';
$Datenbank->close();
echo 'Verbindung zu.<br />';
} catch (Exception $e) {
echo 'Fehler: ' . htmlspecialchars($e->getMessage());
}
}
?>
<p><a href="Index.php">Zurueck zur Startseite</a></p>
Mit der Ausgabe
PHP:
Verbindung offen.
object(mysqli_stmt)#2 (9) { ["affected_rows"]=> int(0) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(7) ["field_count"]=> int(0) ["errno"]=> int(0) ["error"]=> string(0) "" ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) } string(0) "" SQL geschickt.
1 Zeilen betroffen.
Verbindung zu.
Nun geht es darum, dass meine Einträge noch viel größer werden. Am Ende brauch ich um die 250 Platzhalter für ein Formular. Ich hatte alles auch soweit fertig dann sind mir die Fehlermeldung um die Ohren geflogen. Also taste ich mich nun langsam ran. Aber schon nach den neuen 'ersten 40' kommt die Fehlermeldung:
PHP:
Verbindung offen.
bool(false) string(226) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?' at line 7"
Fatal error: Call to a member function bind_param() on a non-object in H:\xampp\htdocs\PHP Version\Eingabe_Aktion.php on line 23
Der Code:
PHP:
<?php
// *****************************************************************************************************************************************
// **** Prepared Statements ***************************************************************************************************************
// *****************************************************************************************************************************************
if (isset($_POST['StudieID'])) //&& (int)$_POST['GebTag'] > 0 && (int)$_POST['GebMonat'] > 0 &&
//(int)$_POST['GebJahr'] > 0 && (int)$_POST['Age'] && isset($_POST['Geschlecht']) && (int)$_POST['dauer'] > 0 )
{
try {
$Datenbank = new MySQLi('localhost', 'root', '', 'base');
echo 'Verbindung offen.<br />';
$sql = " INSERT INTO diagnoseprotokoll(
StudieID, GebTag, GebMonat, GebJahr, Age, Geschlecht, Diagnosenanzahl,
Diagnose01, Diagnose02, Diagnose03, Diagnose04, Diagnose05, Diagnose06, Diagnose07, Diagnose08, Diagnose09, Diagnose10,
Diagnose11, Diagnose12, Diagnose13, Diagnose14, Diagnose15, Diagnose16, Diagnose17, Diagnose18, Diagnose19, Diagnose20,
Diagnose21, Diagnose22, Diagnose23, Diagnose24, Diagnose25, Diagnose26, Diagnose27, Diagnose28, Diagnose29, Diagnose30,
Diagnose31, Diagnose32, Diagnose33, Diagnose34, Diagnose35, Diagnose36, Diagnose37, Diagnose38, Diagnose39, Diagnose40,
)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$Kommando = $Datenbank->prepare($sql);
echo var_dump($Kommando);
echo var_dump($Datenbank->error);
$Kommando->bind_param(
'siiiisissssssssssssssssssssssssssssssssssssssss',
$_POST['StudieID'], $GebTag, $GebMonat, $GebJahr, $Age, $_POST['Geschlecht'], $Diagnosenanzahl,
$_POST['Diagnose01'], $_POST['Diagnose02'], $_POST['Diagnose03'], $_POST['Diagnose04'], $_POST['Diagnose05'], $_POST['Diagnose06'], $_POST['Diagnose07'], $_POST['Diagnose08'], $_POST['Diagnose09'], $_POST['Diagnose10'],
$_POST['Diagnose11'], $_POST['Diagnose12'], $_POST['Diagnose13'], $_POST['Diagnose14'], $_POST['Diagnose15'], $_POST['Diagnose16'], $_POST['Diagnose17'], $_POST['Diagnose18'], $_POST['Diagnose19'], $_POST['Diagnose20'],
$_POST['Diagnose21'], $_POST['Diagnose22'], $_POST['Diagnose23'], $_POST['Diagnose24'], $_POST['Diagnose25'], $_POST['Diagnose26'], $_POST['Diagnose27'], $_POST['Diagnose28'], $_POST['Diagnose29'], $_POST['Diagnose30'],
$_POST['Diagnose31'], $_POST['Diagnose32'], $_POST['Diagnose33'], $_POST['Diagnose34'], $_POST['Diagnose35'], $_POST['Diagnose36'], $_POST['Diagnose37'], $_POST['Diagnose38'], $_POST['Diagnose39'], $_POST['Diagnose40']);
$GebTag = (int)$_POST['GebTag']; $GebMonat = (int)$_POST['GebMonat']; $GebJahr = (int)$_POST['GebJahr'];
$Age = (int)$_POST['Age'];
$Diagnosenanzahl = (int)$_POST['Diagnosenanzahl'];
echo var_dump($Kommando);
echo var_dump($Datenbank->error);
$Kommando->execute();
echo 'SQL geschickt. <br />';
echo $Kommando->affected_rows . ' Zeilen betroffen. <br />';
$Datenbank->close();
echo 'Verbindung zu.<br />';
} catch (Exception $e) {
echo 'Fehler: ' . htmlspecialchars($e->getMessage());
}
}
?>
<p><a href="Index.php">Zurueck zur Startseite</a></p>
Sieht jmd den Fehler?
Gruß