mysql_query() FALSE ist, aber mysql_error() ist leer
Ich bin mit ziemlich komplizierte Abfrage, die aufgebaut ist aus einem paar innerer Abfragen. Die Abfrage enthielt SQL_CALC_FOUND_ROWS am Anfang. Leider nur die Anzahl der Zeilen, könnte abgeholt werden (ich konnte nicht abgerufen Ergebnis selbst).
Habe ich beschlossen, um loszuwerden, SQL_CALC_FOUND_ROWS und führen zwei verschiedene Abfragen, die zählt Zeilen, und zweitens, dass holt Sie. In diesem Fall kann ich abrufen, die Ergebnisse aber COUNT(*) Abfrage, wirkt seltsam. Dies ist, was ich Tue:
- Ausführen, COUNT(*) Abfrage
- mysql_query() gibt FALSE zurück,
- mysql_error() direkt nach dem COUNT(*) Abfrage gibt die leere Zeichenfolge
Der code ist:
$sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
$resultCount = mysql_query($sqlCount);
echo "RESULT COUNT: " . ($resultCount === FALSE) . "<br />";//it returns 1(true)
echo mysql_error(); //it returns nothing (blank string)
ZUSÄTZLICH mysql_errno() 0 zurück,
Könnte Sie finden keine vernünftige Erklärung für eine solche eine seltsame situation?
- Bitte poste den code, um Ihnen zu helfen mehr angemessen.
- Bitte zeigen Sie uns einige aktuelle PHP-code.
- $resultCount=mysql_fetch_array(mysql_query($sqlCount)); echo "ERGEBNIS der ZÄHLUNG:" . $resultCount[0];
- Verwenden Sie
mysql_connect
ersten? - $resultCount halten uns nicht von der Anzahl der Datensätze, die Ihrer Abfrage gefunden, es ist eine Ressource erstellt, die von mysql_query (), dass Sie zu durchqueren Trog. Auf der anderen Seite, würde ich vorschlagen, Umstellung auf PDO sehen, dass die mysql_* - Funktionen sind veraltet jetzt.
- statt $resultCount === FALSE versuchen, mit $resultCount == FALSE
- mysql_query ist FALSE, was bedeutet, dass etwas schiefgelaufen ist und keine Ergebnisse zurückgegeben werden, so dass Ihr später code nicht viel Sinn zu machen.
- sicher. Das ist nicht der Fall
- ja, ich weiß. Es wird benutzt, um anzuzeigen, dass die Abfrage war falsch (=== FALSE).
- Haben Sie die Option vollständige Fehlermeldung? Viele PHP-Funktionen neigen dazu, zu werfen Warnungen, wenn die Fehlermeldung Voraussetzungen erfüllt sind, und Sie liefern Häufig Informationen, die nicht gesammelt werden, irgendwo anders.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich sehe keinen Fehler in deinem code. Bitte ändern Sie Ihr mysql_query Zeile
Sieht es komisch, aber helfen konnte Sie
Es ist seltsam, weil select-Klausel mit SQL_CALC_FOUND_ROWS Zeilen zurückgibt, und eine zusätzliche Abfrage die Anzahl der Zeilen. Wenn Sie
sollten Sie nicht bekommen, kein problem.
Könntest du bitte füllen Sie die Lücken ...und versuchen
- und post-Ausgang?