[PHP] Datenbank bleibt leer

04/04/2014 18:50 Meikbrosoft#1
Hi Leute,

PHP Code:
<?php
//Verbindungsaufbau Datenbank

$db mysql_connect("localhost""Summonershelp""pw""summoners");
if(!
$db)
{
  exit(
"Verbindungsfehler: ".mysqli_connect_error());
}
echo 
"Erfolgreich verbunden";

$eintrag "INSERT INTO login (benutzer, passwort,  email, level) VALUES ('user', 'pw', '[Only registered and activated users can see links. Click Here To Register...]', '3')";
$eintragen mysql_query($eintrag);

if(
$eintragen == true)
   {
   echo 
"Eintrag war erfolgreich";
   }
else
   {
   echo 
"Fehler beim Speichern";
   }


?>
Das folgende Script soll einen Eintrag in die Datenbank machen.
Ich benutze XAMPP - Apache und MySQl ist gestartet - Ports sind frei.
benutzer, passwort und email bestehen jeweils aus dem Typ text und level aus int.

Das Script spuckt aus "Fehler beim Speichern" Kann mir jemand helfen?
04/04/2014 18:55 VisionEP1#2
Hallo folgendes bitte versuchen:
du könntest es debugen (also or die mysql error)
oder schau die struktur der DB an. Evtl ist die 3 ein Integer und brauch daher kein '' oder als was hast du die spalten definiert?
04/04/2014 18:59 Meikbrosoft#3
wie meinst du das?
und wie oben schon gesagt: benutzer, passwort und email sind typ text und level ist int
04/04/2014 19:03 VisionEP1#4
Also entweder :
$sql = 'SELECT * FROM tabelle';
$ergebnis = mysql_query($sql) or die(mysql_error());
oder versuch erst einmal bei der '3' die '' zu entfernen. Da die 3 kein String ist
04/04/2014 20:54 adistoe#5
PHP Code:
mysql_connect //mysql
mysqli_connect_error //mysqli
mysql_query //mysql 
fällt das nur mir auf?
Ansonsten so versuchen, wie der Vorposter es bereits schrieb.

mfg
adistoe
04/04/2014 21:48 InstantBlood#6
Schick uns doch bitte die Tabellen-Struktur, dann können wir dir besser helfen.
04/04/2014 21:50 _robox#7
abgesehen von den Unstimmigkeiten die @adistoe schon aufgelistet hat verlangt
mysql_connect nur 3 Parameter und nicht 4 wie oben angegeben
Das ansprechen der DB muss über mysql_select_db vorgenommen werden das ich oben obigen Code komplett vermisse.
04/04/2014 23:22 demiced16#8
PHP Code:
$eintrag "INSERT INTO admpnl VALUES ('$land', '$mail', '$key_1', '$message', '$client_ip')"
Ich hatte dein Problem vor einigen Tagen auch gehabt. Und zwar habe ich einfach

(benutzer, passwort, email, level) weggelassen! Danach hat es komischerweise funktioniert :D
Denn dein MySQL Befehl ist falsch und wird nicht richtig von phpmyadmin interpretiert!

Die neue Schreibweise ist dann so:

PHP Code:
$eintrag "INSERT INTO login VALUES ('user', 'pw', '[Only registered and activated users can see links. Click Here To Register...]', '3')"
Vergiss aber bitte nicht die Werte in die richtigen Reihenfolge einzutragen! Probier's aus indem du den MySQL Befehl änderst!
04/04/2014 23:38 VisionEP1#9
Das ist eine schlechte Idee. Dran liegt der Fehler nicht. Zuweisung zu den Feldern ist wichtig und Richtig
04/04/2014 23:53 _robox#10
die Lösung ist Gans einfach er muss sich erst mal entscheiden ob er mit MySQL oder MySQLi arbeiten möchte.

danach muss er die Fehler beim connecten der DB in sein Code korrigieren
wie ich schon in mein letzten Beitrag geschrieben habe.
04/04/2014 23:59 Syntaxfehler#11
Ändere diese Zeile:

PHP Code:
$db mysql_connect("localhost""Summonershelp""pw""summoners"); 
zu diesen:

PHP Code:
$db mysql_connect("localhost""Summonershelp""pw");
mysql_select_db("summoners"); 
Außerdem solltest du mysqli_connect_error() zu mysql_error() ändern.

Probiere das mal aus.


Trotz alledem solltest du dir mal MySQLi (prepared statements)/PDO ansehen.
04/05/2014 00:25 Meikbrosoft#12
danke für die hilfe, script sieht jetzt so aus:

PHP Code:
<?php
//Verbindungsaufbau Datenbank

$db mysql_connect("localhost""Summonershelp""eldgsg")
mysql_select_db("login"$db);
if(!
$db)
{
  exit(
"Verbindungsfehler: "mysql_error());
}
echo 
"Erfolgreich verbunden";


$eintrag "INSERT INTO login (benutzer, passwort, email, level) VALUES ('Meik', 'eldgsg', '[Only registered and activated users can see links. Click Here To Register...]', 3)";
$eintragen mysql_query($eintrag);

if(
$eintragen == true)
   {
   echo 
"Eintrag war erfolgreich";
   }
else
   {
   echo 
"Fehler beim Speichern";
   }


?>
wenn ich es ausführe bekomme ich: Parse error: syntax error, unexpected 'mysql_select_db' (T_STRING) in C:\Program Files (x86)\XAMPP\htdocs\core.php on line 5
04/05/2014 00:33 demiced16#13
PHP Code:
mysql_select_db("login"$db); 
Bitte diesen Befehl in einer Variable setzten! Und damit du weißt, dass du auch Erfolgreich in die Datenbank reingehst ein "or die" Befehl hintersetzen.

PHP Code:
$db_connect mysql_select_db("login") or die ("Fehler mit der Verbindung der Datenbank!"); 
04/05/2014 00:36 Meikbrosoft#14
fehler besteht leider immernoch :x
04/05/2014 00:48 demiced16#15
Das ,$db noch wegmachen! Hab ich im oberen Beitrag korriegiert!