PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP,MySQL] Problem mit gewöhnlichem INSERT



MuadDib
19.02.2004, 21:08
Ist mir ja fast schon peinlich, wegen einem derartigen Problem mich zu melden, aber ich bin komplett ratlos.

Ich möchte mit folgendem Script Daten in meine Datenbank einfügen, hab allerdings das Problem, dass das gute Programm den Datensatz nicht einträgt.



<?

$hostdb = "localhost";
$userdb = "username";
$passdb = "passwort";
$db = "server";

$verbindung = @mysql_connect($hostdb,$userdb,$passdb);

if (!$verbindung)
{ echo "1error: no connection";
exit;
}
else
{
if(isset($user) && isset($pass))
{
$sql = "SELECT * FROM `userdata` WHERE `user`='".$user."'";

$result = mysql_db_query($db,$sql,$verbindung);

if(mysql_affected_rows()==0)
{
$sqln = "INSERT INTO `userdata` (`id` , `user` , `pass`)"
. " VALUES ('','".$user."', '".$pass."');";

echo("0ok");
}
else
{
echo("1error: user already exists");
}

}
else
{
echo("1error: no input data");
}
}
mysql_close($verbindung);
echo("*");
?>

Ich hab mir $sql ausgeben lassen und so als SQL-Statement in phpMyAdmin eingetragen - und läuft, die Query hat also nichts. Aber warum fügt er das ganze nicht ein? Die SELECT-Abfrage lauft doch auch problemlos.

Bin für jede Hilfe dankbar :)

Chocwise
19.02.2004, 21:57
Diese MySQL-Query's wie du sie verwendest hab ich bisher nie benutzt. Sieht mir auch etwas kryptisch aus.
Mein Standardquery schau so aus:


$arguments = "'$wert1','$wert2'";
$fields = "feld1,feld2";

$einfuegen = "INSERT INTO userdata ($fields) VALUES($arguments)";
mysql_query($einfuegen,$verbindung);

So hab ichs seinerzeit aus Tab's Scripten gelernt.

MuadDib
19.02.2004, 22:11
Original geschrieben von Chocwise
mysql_query($einfuegen,$verbindung);[/php]

Juhuuu!
Vielen Dank, damit funktionierts :) - Die mysql_db_query lief bei mir bislang eigentlich immer gut, mysql_query war mir hingegen komplett neu - wie auch immer, damit laufts :D

Vielen Dank!

MuadDib
07.03.2004, 23:27
Hallo nochmal (Hallo Chocwise)

Wieder selbiges Problem... die SQL Abfrage läuft, aber das einfügen mittels meines PHP-Codes (den ich einfach vom obigen Beispiel mittels Copy&Paste übernommen habe) klappt nicht... Warum nur...


else
{
if(isset($atka) && isset($atkb) && isset($defa) && isset($defb) && isset($hpa) && isset($hpb) && isset($btlid))
{
$fields = "'','$btlid', '$atka', '$defa', '$hpa', '$atkb', '$defb', '$hpb'";
$sqln = "INSERT INTO `tmpuser` ( `id` , `btlid` , `atka` , `defa` , `hpa` , `atkb` , `defb` , `hpb` )"
. " VALUES ($fields);";

mysql_query($sqln,$verbindung);

echo("0$sqln");
}
else
{
echo("1error: no input data");
}
}

Für jede Hilfe wär ich dankbar :)

EDIT: Es hat sich erledigt. Hach.. jetzt weiß ich wieder, warum ich JSP besser finde ^^. Den Fehler konnte ich beheben, indem ich einfach den Fehler, den ich beim letzten Mal gemacht habe, hier angewandt habe. Fragt mich nicht, warum auf einmal das geht, mir ists auch mittlerweile egal... hauptsache das Teil läuft...