• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datensatz einfügen in mysql-Datenbank

chrysi

Neues Mitglied
Hi,
ich versuche in eine bereits bestehende Tabelle (bei strato.de) einen neuen Datensatz einzufügen. Leider funktioniert das nicht richtig.
Es sind bereits 3 Datensätze enthalten.
Die Anweisungen connect und select_db funktionieren.
Nur bei der Anweisung "Insert into" und "query" tritt ein Fehler auf.
Könnt Ihr mir bitte einen Tipp geben, wie ich das Skript zum Laufen kriege?
Danke, chrysi.

---------------------------------------------------------------------------------------------------------------------
<?php
$db_server = '---';
$db_benutzer = '---';
$db_passwort = '---';
$db_name = '---';

mysql_connect($db_server, $db_benutzer, $db_passwort);
mysql_select_db($db_name);

$sql = "INSERT INTO personen (vorname, alter) VALUES ('Mark', 27)";
mysql_query($con, $sql);

mysql_close($con);
?>
 
Werbung:
Hi,
ich versuche in eine bereits bestehende Tabelle (bei strato.de) einen neuen Datensatz einzufügen. Leider funktioniert das nicht richtig.
Es sind bereits 3 Datensätze enthalten.
Die Anweisungen connect und select_db funktionieren.
Nur bei der Anweisung "Insert into" und "query" tritt ein Fehler auf.
Könnt Ihr mir bitte einen Tipp geben, wie ich das Skript zum Laufen kriege?
Danke, chrysi.

---------------------------------------------------------------------------------------------------------------------
<?php
$db_server = '---';
$db_benutzer = '---';
$db_passwort = '---';
$db_name = '---';

mysql_connect($db_server, $db_benutzer, $db_passwort);
mysql_select_db($db_name);

$sql = "INSERT INTO personen (vorname, alter) VALUES ('Mark', 27)";
mysql_query($con, $sql);

mysql_close($con);
?>

Siehe Parameterliste:
http://php.net/manual/de/function.mysql-query.php

Und schadet sicher nicht wenn du dir mal den fetten roten Text durchliest.
 
Danke, ich habe überall das i ergänzt. Leider funktioniert es immer noch nicht. Ich hatte auch oben eine Anweisung vergessen. Daher steht unten noch einmal der ganze Code.
Als Fehlermeldung kommt nur "Es wurde kein Datensatz hinzugefügt." Also müsste meiner Auffassung nach beim "insert into" oder beim "mysqli_query" ein Fehler liegen.

-------------------------------------------------------------------------------------------------------
<?php
$db_server = '---';
$db_benutzer = '---';
$db_passwort = '---';
$db_name = '---';

if($con = mysqli_connect($db_server, $db_benutzer, $db_passwort)) {
echo 'Server-Verbindung erfolgreich, wähle Datenbank aus...';
if(mysqli_select_db($con, $db_name)) {
echo 'Datenbank erfolgreich ausgewält, alle Tests abgeschlossen.';}
else {
echo 'Die angegebene Datenbank konnte nicht ausgewählt werden, bitte die Eingabe prüfen!';
}}
else {
echo 'Verbindung nicht möglich, bitte Daten prüfen!';
echo 'MYSQL-Fehler: '.mysqli_error();
}

$sql = "INSERT INTO personen(vorname, alter) VALUES ('Mark', 27)";

mysqli_query($con, $sql);

$num = mysqli_affected_rows($con);
if ($num>0) echo "Es wurde 1 Datensatz hinzugef?gt";
else echo "es wurde kein Datensatz hinzugef?gt";

mysqli_close($con);
?>
 
Werbung:
@ bdt600: Das hat geholfen. Die Eintragung funktioniert jetzt. Es gibt aber immer noch ein Problem: Es wird zweimal der gleiche Datensatz eingetragen.
Wie kriege ich es hin, dass nur ein Datensatz hinzugefügt wird?
MfG, chrysi.
-------------------------------------------------------------------------------------------------------------------------
<?php
$name = "Hossu";
$bereich = "Janosch";

// Neues Datenbank-Objekt erzeugen
$db = @new mysqli( 'rdbms.strato.de', '---', '---', '---' );

// Pruefen ob die Datenbankverbindung hergestellt werden konnte
if (mysqli_connect_errno() == 0)
{echo 'Datenbank erfolgreich verbunden.';
$sql = 'INSERT INTO `tabelleneu` (`name`, `bereich`) VALUES (?, ?)';
$eintrag = $db->prepare( $sql );
$eintrag->bind_param( 'ss', $name, $bereich );
$eintrag->execute();

// Pruefen ob der Eintrag erfolgreich war
if ($eintrag->affected_rows == 1) echo 'Der neue Eintrage wurde hinzugef&uuml;gt.';
else echo 'Der Eintrag konnte nicht hinzugef&uuml;gt werden.';
}
else echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: <strong>' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</strong>';

$db->close();
?>
 
Zuletzt bearbeitet:
Es funktioniert jetzt :-)
Ich habe den Code noch ein wenig abgeändert. Unten sind die funktionierenden HTML und die PHP Dateien
-----------------------------------------------------------------------------------------------------------------------------
<html>
<body>
<form action="DatenbankEintragen2.php" method = "post">
<p>Name:</p>
<p><input name="t1" /></p>
<p>Bereich:</p>
<p><input name="t2" /></p>
<p><input type="submit"/>
<input type = "reset"/></p>
</form>
</body>
</html>
-----------------------------------------------------------------------------------------------------------------------------
<?php
$name = $_POST["t1"];
$bereich = $_POST["t2"];
$db = @new mysqli( 'rdbms.strato.de', '---', '---', '---' );
if (mysqli_connect_errno() == 0)
{$sql = 'INSERT INTO `tabelleneu` (`name`, `bereich`) VALUES (?, ?)';
$eintrag = $db->prepare( $sql );
$eintrag->bind_param( 'ss', $name, $bereich );
$eintrag->execute();
echo 'Datenbank erfolgreich verbunden.';
if ($eintrag->affected_rows == 1) echo 'Der neue Eintrage wurde hinzugef&uuml;gt.';
else echo 'Der Eintrag konnte nicht hinzugef&uuml;gt werden.';
}else echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: <strong>' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</strong>';
$db->close();
?>
 
Werbung:
Zurück
Oben