php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.02.2008, 13:22  
Neuer Benutzer
 
Registriert seit: 09.02.2008
Beiträge: 5
Bebre befindet sich auf einem aufstrebenden Ast
Standard Neuen Datensatz in Datenbank einfügen

Ich bin absoluter Anfänger. Habe bei meinem Provider aktuelles PHP und MySQL zur Verfügung und eine Datenbank db1 eingerichtet. Über den vorhandenen MyAdmin kann ich dort alle Daten eingeben, bearbeiten, löschen usw.
Die Verbindung zur Datenbank scheint zu funktionieren.

Von meiner Beispielseite aus funktioniert der Befehl insert jedoch nicht. Wie bekomme ich den Datensatz in meine Tabelle testdb? Die Tabelle wurde mit den angeführten Feldern angelegt. Nach allen Tutorials und sonstigen Beschreibungen müsste es doch so funktionieren? Quäle mich jetzt seit 2 Tagen damit rum ohne Ergebnis.

<html>
<head>
<title>Daten verarbeiten</title>
</head>
<body>

<?php

$host = "localhost";
$user = "***";
$password = "***";
$dbname = "***";
$tabelle ="testdb";

$dbverbindung = mysql_connect ($host, $user, $password);

$sql = 'INSERT INTO `***`.`$tabelle` (`id`, `name`, `artikel`) VALUES (NULL, \'Lutz Müller\', \'Mikrofon\');

$eintragen = mysql_query($sql);

mysql_close ($dbverbindung);

?>

</body>
</html>

Bearbeitet von Zergling: (fake?) Zugangsdaten entfernt
Bebre ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.02.2008, 13:29  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Hallo
ich kann dir auch nicht sicher sagen woran das liegt, aber da gibts nich die schöne Funktion mysql_error(), die man folgendermassen anhängen kann:
PHP-Code:
$eintragen mysql_query($sql) || die(mysql_error()); 
Analog für mysql_connect(), etc. Im Fehlerfall wird nun eine Meldung ausgegeben und das Programm beendet.

PS
Bitte benutze in Zukunft für den Code PHP-Tags

[edit]
Habs erst jetzt gesehen, aber du wählst ja gar keine Datenbank aus. Aber auch das würde dir mysql_error() sagen
__________________
Gruss
L
lazydog ist offline  
Alt 08.02.2008, 15:25  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Ist doch klar! Du verwendest für den String ' <-- und Variablen die IN ' ' geschrieben sind werden NICHT ersetzt!

Gib dir doch einmal echo $sql; aus! Dann sieht du ganz genau wo dein Fehler liegt! Genauso fehlt am Ende der Zeile noch ein '
Flor1an ist offline  
Alt 08.02.2008, 15:32  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von RaZoR
Ist doch klar! Du verwendest für den String ' <-- und Variablen die IN ' ' geschrieben sind werden NICHT ersetzt!
Konkret ist hier $tabelle gemeint.

Zitat:
Zitat von RaZoR
Gib dir doch einmal echo $sql; aus! Dann sieht du ganz genau wo dein Fehler liegt!
Das dürfte nicht funktionieren, weil voher der Parser Fehler zuschlägt.
' ans Ende der Query!!
.
nikosch ist offline  
Alt 08.02.2008, 15:41  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Umso besser dann sieht man sogar gleich den Fehler!
Flor1an ist offline  
Alt 09.02.2008, 10:01  
Neuer Benutzer
 
Registriert seit: 09.02.2008
Beiträge: 5
Bebre befindet sich auf einem aufstrebenden Ast
Standard

Erst mal großes Danke schön für die schnelle Hilfe. Hat mich aber momentan noch zu keiner Lösung geführt.

Der Ist-Stand ist folgender:
(Daten User, Datenbank, Passwort verständlicherweise geändert)

<html>
<head>
<title>Daten verarbeiten</title>
</head>
<body>

<?php

$host = "localhost";
$user = "***";
$password = "***";
$dbname = "***";
$tabelle ="testdb";

$dbverbindung = mysql_connect ($host, $user, $password);

$sql = INSERT INTO `***`.`$tabelle` (`id`, `header`, `artikel`) VALUES (NULL, \'Lutz Müller\', \'Mikrofon\');


$eintragen = mysql_query($sql);

echo $sql;


mysql_close ($dbverbindung);

?>

</body>
</html>

Mit dem ' vor INSERT und am Ende der Zeile bekomme ich die Zeile nur als Text angezeigt. Habe es daher vor INSERT weggenommen.

Das $eintragen = mysql_query($sql); habe ich vorgenommen, da von

$sql = INSERT INTO `db1`.`$tabelle` (`id`, `header`, `artikel`) VALUES (NULL, \'Lutz Müller\', \'Mikrofon\');

keine Daten in die Tabelle testdb eingetragen wurden.

Erhalte jetzt als Fehlermeldung.

Parse error: syntax error, unexpected T_STRING in /is/htdocs/wp1054451_38G93OTDJR/www/work-8.php on line 20

Da ich einen Syntax-Error zurück erhalte habe ich bei db1 und $tabelle die Hochkommas weggelassen, statt db1 $tabelle eingetragen usw, erhalte aber immer wieder die gleiche Fehlermeldung.
Laut den Tutorials scheine ich keinen Fehler zu machen.
Den Insert-Befehl habe ich übrigens von meiner Datenbank so erhalten. Dort besteht die Möglichkeit, die dort ausgeführten Datenbankbefehle als PHP-Code zu erhalten.
Aber auch das weglassen der back-slash \ gibt den gleichen Fehler aus. Bin hilflos.

Am Ende möchte ich den Code auf 2 Seiten verteilen mit Formularseite, Fehlerabfragen usw. mit dem Befehl Post und die 2. Seite trägt dann die Werte in die Datenbank ein und gibt den Fehlercode aus (oder auch nicht). Aber ich wollte es erst mal ganz einfach versuchen und Daten in die testdb eintragen können.

Bearbeitet von Zergling: Zugangsdaten und Datenbankname entfernt
Bebre ist offline  
Alt 09.02.2008, 12:50  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

1. Du kannst die Grundlagen in PHP nicht. Wie funktionieren Strings, wann werden Variablen in Strings ersetzt, was ist der Unterschied zwischen " und ' und wie verknüpfe ich zwei Strings! Die Grundlagen sind hier wesentlich! Daher solltest du dir bitte diese Kapitel noch einmal durchlesen!

2. Wenn du ' weglässt dann kann PHP nicht erkennen dass du in $sql einen String reinschreiben willst, wie auch.

3. Tipp: Mach mal in der Zeile unter $sql = INSERT ... einfach ein
echo $sql;

Wenn du dir den Query ausgibst dann wirst du genau sehen wo dein Fehler liegt, bzw. was die Datenbank für einen Query übergeben bekommt.
Flor1an ist offline  
Alt 09.02.2008, 16:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Willkommen hier im Forum! Bitte poste hier keine Zugangsdaten, auch keine falschen, sonst wirst du schnell zum Ziel; auch wäre es schön, wenn du deinen Code in die BBTags [ php] [ /php] schreibst und die Vorschau benutzt.

Zu deinem Problem: Syntaktisch richtigen Quelltext musst du schon hinbekommen und jetzt rumraten ist auch keine Lösung.

Probier doch einfach mal das bereits mehrfach erwähnte mysql_error() in folgender Form:
PHP-Code:
<?php
mysql_select_db
($dbname) or die(mysql_error());
$sql "INSERT INTO `$tabelle` (`id`, `header`, `artikel`) VALUES (NULL, 'Lutz Müller', 'Mikrofon')";
mysql_query($sql) or die(mysql_error() . "\n
$sql"
);
?>
Zergling-new ist offline  
Alt 09.02.2008, 18:27  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Bebre legt keinen Wert auf eure Hilfe....

http://www.php . de/php-einsteiger/520-daten-datenbank-uebergeben.html
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 09.02.2008, 18:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wenn das so ist ..
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe, Datenbank nimmt keine neuen Daten und alte nicht löschen! XTC PHP Tipps 2008 32 11.06.2008 14:15
Bei UPDATE erkennen, ob der Datensatz existiert? Anotherone Datenbanken 7 01.04.2008 14:49
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Nach Insert letzten Datensatz auslesen ohne neuen Query Goschy Datenbanken 7 20.03.2007 17:43
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
ERLEDIGT - Datenbank Import (immer nur 1 Datensatz) web2 PHP Tipps 2007 4 25.12.2005 23:51
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
Speichern einer neuen Seite mit nagaben aus Datenbank PHP Tipps 2004-2 2 09.12.2004 13:07
[Erledigt] frage zu auto_increment, wenn ein datensatz gelöscht wurde.. Datenbanken 5 11.11.2004 14:32
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php insert into id des neuen datensatz, sql neuen datensatz einfügen, php neuen datensatz einfügen, neuer datensatz ans ende mysql, datensatz in datenbank einfügen, neuer datensatz php, in datenbank einfügen vor datensatz, datensatz datenbank einfügen, sql neuer datensatz

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.