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

mysql funktioniert irgendwie nciht ....

BDG

Mitglied
Hallo Leute ich habe mir mysql geholt (also xampp) und gleich was ausprobiert :
Code:
<?php
$verbindung=mysql_connect("localhost","root","");
if(!$verbindung) die("keine verbindung zu mysql");
$sqlbefehl="insert into User values('BDG','bastilo','123456')";
mysql_db_query("verwaltung",$sqlbefehl,$verbindung);
mysql_close($verbindung);
?>
wiso funktioniert das nicht ? also er gibt keine fehlermeldungen zurück aber in der datenbank steht nichts .... oder steht da doch was ?? ich weiß nämlich auch garnicht wie man sehen kann ob jetzt was in der datenbank steht ...
 
Du müsstest mit mysql_select_db() noch die zu verwendende Datenbank auswählen. Außerdem heißt die Funktion für das Query nicht "mysql_db_query" sondern mysql_query(). Ein Blick ins Handbuch sollte helfen.
 
Also ich hab das jetzt so gemacht mit dem code :
Code:
<?
// Hostname oder IP des MySQL-Servers
$sqlhost = "localhost";
// Username und Passwort
$sqluser = "root";
$sqlpassword = "";
// Name der Datenbank
$sqldb = "test1";
// Verbindung herstellen
mysql_connect($sqlhost,$sqluser,$sqlpassword) or die ("Keine Verbindung möglich"); mysql_select_db($sqldb) or die ("Die Datenbank existiert nicht");
$sqlbefehl="insert into test1 values
('BDG','bastilo','123456')";
?>

und wenn ich die datei dann anklicke und dann in phpmyadmin gehe steht der eintrag aber nicht da .... wenn ich in php myadmin bei sql den code hier eingebe :
Code:
insert into test1 values
('BDG','bastilo','123456')
dann funktionierts ... aber da steht komischer weise bei benutzername und passwort nur eine "0" und bei ID steht das richtige ... (Benutzername,Passwort und ID sind die spalten ) aber es soll ja auch in der php datei gehen !!!
Ich hoffe ihr könnt mir helfen ....
 
Und als Ergänzung:

aber da steht komischer weise bei benutzername und passwort nur eine "0" und bei ID steht das richtige ... (Benutzername,Passwort und ID sind die spalten ) aber es soll ja auch in der php datei gehen !!!

Das hat nichts mit php sondern mit deiner Datenbank zu tun. Wenn Du eine Spalte namens "ID" hast (von der wir hier nichts wissen, weil Du nichts genaues dazu sagst) und diese nicht auf auto_increment steht, wird dort auch - solange Du in Deinem Statement es nicht angibst - auch nichts eingetragen.

Mein Tipp: schau dir erstmal die MySQL-Grundlagen an.
 
naja aber nun funktionierts auch nicht .... ich weiß zwar jetzt wiso da nur eine "0" stand bei benutzername und passwort (habe bei der tabelle bei allen Feldern INT ) aber wenn ích die php datei aufrufe kommt trotzdem kein eintrag in die datenbank in die tabelle ... und es kommt aber auch kein error ...
<?
// Verbindung herstellen
$verbindung=mysql_connect('localhost','root','') or die ("Keine Verbindung möglich"); mysql_select_db('test2') or die ("Die Datenbank existiert nicht");
$sqlbefehl="insert into test2 values
('BDG','bastilo','123456')";
$result = mysql_query($sqlbefehl);
?>
 
PHP:
<?php

// Verbindung herstellen
$verbindung = mysql_connect('localhost', 'root', '')
        or die ("Keine Verbindung möglich");

mysql_select_db('test2')
        or die ("Die Datenbank existiert nicht");

$sqlbefehl = "INSERT INTO test2
              VALUES      ('BDG', 'bastilo', '123456')";

$result = mysql_query($sqlbefehl);

if ($result === false) {
    echo mysql_error();
}

Was sagt das?
 
Er muss noch die Fehler auswählen. Woher soll MySQL/PHP wissen, wo er die Daten hinhaben will?
PHP:
<?php 

// Verbindung herstellen 
$verbindung = mysql_connect('localhost', 'root', '') or die ("Keine Verbindung möglich"); 

mysql_select_db('test2') or die ("Die Datenbank existiert nicht"); 

$sqlbefehl = "INSERT INTO test2 (username, passwort, id)  VALUES ('BDG', 'bastilo', '123456')"; 

$result = mysql_query($sqlbefehl); 

if ($result === false) { 
    echo mysql_error(); 
}
Die Felder müssen noch richtig benannt werden.
 
Woher soll MySQL/PHP wissen, wo er die Daten hinhaben will?

MySQL füllt die Felder (so in etwa) einfach von links nach rechts entsprechend auf, wenn die passende Anzahl an Daten ankommt. Ich vermute, genau das ist hier nicht der Fall.

Aber es wäre generell schöner die Felder explizit mit anzugeben, ja.
 
Na sowas, da fehlt ja etwas:
Code:
mysql_select_db('test2', [COLOR="red"]$verbindung[/COLOR]) or die ("Die Datenbank existiert nicht");
 
Na sowas, da fehlt ja etwas:

Auch auf die Gefahr, hier Nitpicking zu betreiben: ;)

Strenggenommen fehlt auch das nicht. (Ist aber mit Angabe natürlich wiederum schöner.) Wenn den Befehlen keine Verbindungskennung mitgegeben wird, wird automatisch die letzte geöffnete Verbindung gewählt.

Der Code in #6 kann funktionieren, wenn die Tabellenstruktur passt.
 
Weil hier in dem Thread in Beitrag #7 und #8 gezeigt wurde, wie du Fehler abfängst. In dem anderen Thread hättest du den Fehler viel früher finden können, wenn du das hier behrzigt hättest.
 
Zurück
Oben