Nejste přihlášeni
Stránky 1
Dobrý večer, dělám někomu stránky, zatím lite verze a když potřebuju něco číst z DB, tak se mi vrátí prázdný výsledek. Tabulky i sloupce v DB jsou.
Kód používám následující: mysql_query("SELECT * FROM table WHERE 1");
Tenhle kód by měl být správný, ale výsledek je nulový, data čtu přes funkci mysql_fetch_assoc();
Děkuji za pomoc.
Offline
Zápis mysql_query("SELECT * FROM table WHERE 1"); nemôže byť správny lebo keď to preložíme dostaneme VYBER VŠETKO Z TABUĽKY TABLE KDE 1 ďalej ale nieje špecifikované ktorý stĺpec má byť číslo 1, týmto sa vám vracia správny výsledok, tj nič.
Offline
To měl být příklad a nedošlo mi to. Samozřejmě hledám konkrétní sloupce z konkrétní tabulky kde WHERE je taky konkrétní. Spíš jsem si myslel, jestli nemá LITE verze nějaké omezení, protože u jiných účtů, kde není LITE verze to normálně funguje.
Díky.
Offline
U LITE nieje obmedzená databáza, je možné ju využívať rovnako ako u programu FREE. Prípadne si môžete zapnúť zobrazovanie php chýb, kde pri zlom zápise dostanete informáciu kde je chyba.
Offline
Výpis z error logu:
[26-Oct-2014 10:58:34 UTC] PHP Warning: mysql_query(): Access denied for user ''@'sasanka.stable.cz' (using password: NO)
[26-Oct-2014 10:58:34 UTC] PHP Warning: mysql_query(): A link to the server could not be established
[26-Oct-2014 10:58:34 UTC] PHP Warning: mysql_result() expects parameter 1 to be resource, boolean given
[26-Oct-2014 10:58:34 UTC] PHP Warning: mysql_query(): Access denied for user ''@'sasanka.stable.cz' (using password: NO)
[26-Oct-2014 10:58:34 UTC] PHP Warning: mysql_query(): A link to the server could not be established
[26-Oct-2014 10:58:34 UTC] PHP Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
Jedná se o redakční systém Wordpress a připojení do DB je přes konfigurační soubor kde HOST je buď localhost, nebo sql.endora.cz:3315. V obou případech stejný výsledek, samotný WP funguje normálně.
Chci například vypsat publikované stránky, použiju kód:
$radku = mysql_result(mysql_query("SELECT COUNT(*) FROM wp_posts WHERE post_status='publish' and post_type='page' ORDER BY post_date DESC"), 0); //Počet stránek
if($radku == 0) echo "<p class='center'>Nebyly vytvořeny žádný stránky.</p>\n";
$sql=mysql_query("SELECT post_title FROM wp_posts WHERE post_status='publish' and post_type='page' ORDER BY post_date DESC");
while ($data=mysql_fetch_assoc($sql))
{
echo "<p>".$data['post_title']."</p>"; //výpis stránek
}
V prohlížeči se mi vypíše pouze "Nebyly vytvořeny žádný stránky."
Díky.
Offline
A nezabudli ste sa pripojiť do MySQL databázy? Inak mysql_* je zastaralé, odporúča sa používať mysqli_* rozšírenie alebo PDO s možnosťou prepared statements, kde pri správnom použití eliminujete riziko SQL injection.
--
Pozerám, že to je asi vlastný doplnok pre WordPress, ten ale pracuje s databázou cez vlastné funkcie.
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Přece nepotřebuji navázat nové připojení, když jsem globálně připojený přes wordpress konfigurační soubor? Nikdy jsem nemusel, ani u endory.
Offline
WordPressa ale využíva svoju vlastnú knižnicu pre prácu s databázou: http://codex.wordpress.org/wpdb#query_- … e_Database
Pochybujem, že nový WordPress používa zastaralé mysql_, odhadujem, že je tam aspoň mysqli a tam sa treba odkazovať na daný link spojenia, čo práve nemôžete vedieť, ak nebudete využívať ich knižnicu, ktorá práve na tieto veci slúži.
Podľa zdrojového kódu vidím, že mysqli_ sa aktivuje už keď systém beží na PHP 5.5+, takže možno ste používali staršie hostingy, kde podmienky pre automatické aktivovanie mysqli neboli splnené a preto ste mohli pracovať s mysql_ príkazmi, ktoré môže obsahovať max. jedno aktívne spojenie. Avšak máte používať ich knižnicu, aby ste sa práve týmto problémom v budúcnosti vyhli.
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Ok, už to studuji 30 minut a bojuji s tím... Můžete uzavřít diskuzi.
Dobojoval jsem s tím a funguje to.
Díky za pomoc.
Upravil Dave_CZ (2014-10-26 15:25:53)
Offline
Stránky 1