mysql_query true oder false zurück geben
Raul Glattmann
- php
Hallo,
ist es auch irgendwie möglich von einem mysql_query nur true oder false zurück zugeben? Weil ich brauch eigentlich nicht den Wert der in dem Feld steht ich muß nur Wissen ob er vorhanden ist.
So frage ich momentan ab:
mysql_query("SELECT Milchkuh from Bauer WHERE NR = '$_REQUEST[Kuh_Nr]'", $dbh)
Und dann frage ich mit if in php ab ob der Wert vorhanden ist.
Aber vielleicht kann ich hier noch etwas an Resourcen sparen?
Weiß jemand mehr?
Danke Raul Glattmann
Hi,
mysql_query("SELECT Milchkuh from Bauer WHERE NR = '$_REQUEST[Kuh_Nr]'", $dbh)
wenn NR ein Primärschlüssel und somit eindeutig ist, würde ich danach ein if (mysql_num_rows() == 1) machen. mysql_query() liefert immer true, wenn die Abfrage erfolgreich war (wenn also kein Syntaxfehler o.ä. aufgetreten ist).
viele Grüße
Achim Schrepfer
mysql_query("SELECT Milchkuh from Bauer WHERE NR = '$_REQUEST[Kuh_Nr]'", $dbh)
wenn NR ein Primärschlüssel und somit eindeutig ist, würde ich danach ein if (mysql_num_rows() == 1) machen. mysql_query() liefert immer true, wenn die Abfrage erfolgreich war (wenn also kein Syntaxfehler o.ä. aufgetreten ist).
Also heißt das mit mysql_query(); bekomme ich nur true oder false zurück nicht den Wert von Milchkuh? Weil den Wert möchte ich von mysql nicht zurückgeliefert haben das wären überflüssige Resourcen.
Also heißt das also das ich die Ergebnis Kennung von der Datenbank erst bekomme wenn ich mysql_fetch_row() oder andere Funktionen ausführe?
In meinem Fall brauche ich wie schon gesagt kein Ergebnis nur true oder false.
Hi,
Also heißt das mit mysql_query(); bekomme ich nur true oder false zurück nicht den Wert von Milchkuh? Weil den Wert möchte ich von mysql nicht zurückgeliefert haben das wären überflüssige Resourcen.
due Werte bekommst Du ersten mit einem fetch-Aufruf - z.B. mysql_fetch_row(). mysql_query() führt ja nur die Abfrage aus und liefert eine Verbindungskennung mit der dann im weiteren Verlauf auf das Abfrageergebnis zugegriffen werden kann. Es werden also keine Ressourcen verschwendet ;)
viele Grüße
Achim Schrepfer
wenn NR ein Primärschlüssel und somit eindeutig ist, würde ich danach ein if (mysql_num_rows() == 1) machen. mysql_query() liefert immer true, wenn die Abfrage erfolgreich war (wenn also kein Syntaxfehler o.ä. aufgetreten ist).
viele Grüße
Achim Schrepfer
Hi,
ich habe es ausprobiert aber es funktioniert nicht!
$db = getConn();
$rs = mysql_query("SELECT * from kuhstall WHERE Nr = '$kuh_nr'" , $db) or die ('Ein Fehler ist aufgetreten: ' . mysql_error());
if (mysql_num_rows($rs) == 1):
echo "Ja die Kuh lebt noch!";
endif;
Die Nummer existiert aber es wird mir nichts ausgeben?
Hi,
$db = getConn();
$rs = mysql_query("SELECT * from kuhstall WHERE Nr = '$kuh_nr'" , $db) or die ('Ein Fehler ist aufgetreten: ' . mysql_error());if (mysql_num_rows($rs) == 1):
echo "Ja die Kuh lebt noch!";
endif;
Liefert die Anfrage WIRKLICH nur einen Datensatz zurück? Dann müsste das eigentlich auf jeden Fall funktionieren. Mach einfach mal ein
echo mysql_num_rows($rs);
viele Grüße
Achim Schrepfer
Hallo,
Hi!
ist es auch irgendwie möglich von einem mysql_query nur true oder false zurück zugeben? Weil ich brauch eigentlich nicht den Wert der in dem Feld steht ich muß nur Wissen ob er vorhanden ist.
<a href="http://de.php.net/manual/de/function.mysql-query.php">http://de.php.net/manual/de/function.mysql-query.php</a>
"Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern."
So frage ich momentan ab:
mysql_query("SELECT Milchkuh from Bauer WHERE NR = '$_REQUEST[Kuh_Nr]'", $dbh)
Und dann frage ich mit if in php ab ob der Wert vorhanden ist.
Aber vielleicht kann ich hier noch etwas an Resourcen sparen?
ja:
if (mysql_affected_rows() > 0)
Danke Raul Glattmann
Viele Grüße
Maresa
hi,
<a href="http://de.php.net/manual/de/function.mysql-query.php">http://de.php.net/manual/de/function.mysql-query.php</a>
</faq/#Q-19> sagt dir, wie man hier verlinken kann.
Aber vielleicht kann ich hier noch etwas an Resourcen sparen?
ja:
nein.
if (mysql_affected_rows() > 0)
wenn du schon das manual zitierst, hättest du aber auch unter http://www.php.net/manual/de/function.mysql-affected-rows.php mal nachschlagen können, um zu sehen dass das nur bei INSERT, UPDATE oder DELETE ein ergebnis liefert.
gruss,
wahsaga
yo,
if (mysql_affected_rows() > 0)
wenn du schon das manual zitierst, hättest du aber auch unter http://www.php.net/manual/de/function.mysql-affected-rows.php mal nachschlagen können, um zu sehen dass das nur bei INSERT, UPDATE oder DELETE ein ergebnis liefert.
wobei man ergänzen kann, dass es auch bei select mit einer anderen funktion geht, mysql_num_rows()
Ilja
if (mysql_affected_rows() > 0)
Das kenne ich noch gar nicht das schaue ich mir nun an aber ich habe nun noch eine Frage ich habe nun mysql_free_result gefunden muß ich das machen? Ich dachte die Datenbank gibt den Speiecher Serverseitig automatisch irgendwann wieder frei ist das nicht eine einstellung vom Administrator des Servers?
Gruß Raul