Überprüfung stimmt nicht

matzseesi

Erfahrenes Mitglied
Hi Leute

Also folgendes:
Habe mir eine nette kleine Funktion geschrieben mit der ich etwas in die Datenbank speichern kann!
Diese sieht folgendermaßen aus:

PHP:
function db_query($db_username,$db_password,$db_host,$db_dbname,$db_tablename,$query)
{
 // Versuchen die DB-Verbindung herzustellen
 if (!($verbindung=mysql_connect($db_host,$db_username,$db_password)))
 {
  $error='no_connection';
  return $error;
 }
 //Versuchen die DB auszuwählen
 if (!mysql_select_db($db_dbname, $verbindung))
 {
  $error='no_database';
  echo mysql_error();
  mysql_close($verbindung);
  return $error;
 }
 
 if (!($ergebnis=mysql_query($query,$verbindung)))
 {
  $error = 'mysql_error';
  echo mysql_error();	
  mysql_close($verbindung);
  return $error;
 }
 else
 {
  mysql_close($verbindung);
  return $ergebnis;
 } 
}

Wenn der Befehl erfolgreich ausgeführt wird gibt mir diese Funktion den Wert 1 retour

Jetzt überprüfe ich in meinem Skript die Fehlermeldungen also so:

PHP:
if($rueck=="no_database")
{
blubb
}

Also wenn die Funktion no_database zurückgibt soll er blubb ausgeben ansonsten weitergehen!
Ich habe mir den Funktionsrückgabewert mittels echo ausgeben lassen! Dieser beträgt korrekterweise 1 da er die Werte auch in die Datenbank einträgt, allerdings geht er mir in diese if Abfrage hinein und gibt blubb aus obwohl die Rückgabe 1 ist.

Was mache ich falsch

Grüße matz
 
Zuletzt bearbeitet:
Die Funktion würd _ich_ nicht benutzen, denn:
Was machst du bei mehreren Query\'s auf einer
Seite - was normal ist?!
Immer wieder die Verbindung aufbauen, nutzen
und wieder schließen ist in meinen Augen recht
Serverlastig :)

Btw:
PHP:
return "no_connection"; // eine Zeile gespart :)
 
Zuletzt bearbeitet:
ok

Aber das problem ist somit immer noch nicht gelöst!

Wie würdest du es machen! immer am index anfang verbindung herstellen und dann zum schluss beenden?
 
Sicher :-)

Zu deinem Problem:
PHP:
function db_query($db_username,$db_password,$db_host,$db_dbname,$db_tablename,$query)
{
// Versuchen die DB-Verbindung herzustellen
  if (!($verbindung=mysql_connect($db_host,$db_username,$db_password))) {
    return "no_connection";
  }
  //Versuchen die DB auszuwählen
  if (!mysql_select_db($db_dbname, $verbindung))
  {
    mysql_close($verbindung);
    return "no_database: ".mysql_error();
  }
  $ergebnis = mysql_query($query);
  if (!$ergebnis) {
    mysql_close($verbindung);
    return "mysql_error: ".mysql_error();
  }
  else {
    mysql_close($verbindung);
    return $ergebnis;
  }
}

Aber: Ich würde mit mysql_query($qry) or die (mysql_error())arbeiten
 
Zuletzt bearbeitet:
leider

Er macht immer noch es gleiche

gibt 1 zurück und wenn ich dann abfrage dann schreibt er no database obwohl er einträgt
 
hmm

falsch was heißt mysql_fetch_èn? meintest du mysql_field_len? für was brauch ich die länge des wertes?

ja aber wenn ich diesen 1 mit no_database vergleiceh (siehe weiter oben im post) mit dem if dann führt er den inhalt vom if auch aus!
 
Zuletzt bearbeitet:
Re: hmm

Original geschrieben von matzseesi
falsch was heißt mysql_fetch_èn? meintest du mysql_field_len? für was brauch ich die länge des wertes?

mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_row()
mysql_fetch_object()
 
Zurück