sql >> Databáze >  >> RDS >> Mysql

PHP Mysqli nevrací žádné řádky, zatímco ruční SQL dotaz vrací výsledky

-- Je pravda, že Bill Gates trefil jackpot v loterii?
-- Ano, docela pravda. Ale nebyl to Bill Gates, ale John Doe, ne v loterii, ale black jack, ne jackpot, ale 10 $ a nevyhrál, ale prohrál.

Toto „téměř identické " kazí celou věc. Chcete-li obvinit mysqli, musíte spustit přesně stejný dotaz bez jakýchkoliv předpokladů.

Ve skutečnosti existuje celý PHP program pro dynamické sestavení vašeho dotazu. V tom programu určitě mohou být chyby. Pokud tedy váš dotaz neproběhne tak, jak očekáváte, musíte ověřit výsledek programu, konkrétně samotný dotaz.

Napadlo vás někdy výsledný dotaz zopakovat, místo abyste jej spustili? Jen pro jistotu, že je to skutečně dotaz, který očekáváte? Pokud ne - je čas to udělat.

A samozřejmě by to měla být přesná sada dotazů, která se neliší od těch, které spouštíte ručně.

Pokud ano běží přesně stejně staticky dotaz z mysqli a výsledek se liší od jakéhokoli jiného klienta - pak se s těmito klienty připojujete k různým serverům. Zatímco mysqli nikdy nebude zasahovat do vašich dotazů. Tím si můžete být zcela jisti.




  1. Rozdíly ve výkonu mezi rovným (=) a IN s jednou doslovnou hodnotou

  2. Export dat SQL Server do souboru CSV

  3. Zvětšení velikosti importu mysql

  4. Vyhledávání Mysql s řetězcem odděleným čárkou