(Csak arra tudok/reagálni, amit Látens olvtárs maga írt, nem állok neki találgatni, hogy ha C:/Localhost/phpmysqltest.php-t ír, akkor esetleg http://localhost/phpmysqltest.php-ra kell gondolni.)
Jajj, kérlek ne zavarj össze, én úgy értettem a 10005-öt, hogy az olvtárs böngészőjében C:/Localhost/phpmysqltest.php volt a címsorában, és a alatta a futás eredménye látszott -- igaz, hogy hibás futásé, de mégiscsak a futásé.
Ad3. Jóvammá' nem kell ilyen dolgokba belekötni, ha nem pontos a megfogalmazás, akkor is megértjük. Bár kétségtelen, hogy leendő informatikus rendszergarázda létére tudhatná, hogy a ... Egyébként pedig azt írta, hogy a böngészőben indítja el, nem azt, hogy a böngészőben fut. Ráadásul amit írt az így teljesen helyénvaló, mert a böngésző címsorába írja az akármi.php-t, így ennek hatására indul el a php script futása. Én pl. terminálból indítom a php programjaimat. És ha jól tudom, így nekem még apache szerver sem kell hozzá (bár ebben nem vagyok biztos).
Abban azért egyetértünk, hogy nem a képernyőn futnak a programok, hanem mondjuk a processzorban és a memóriában (párhuzam), de azért egy böngésző több, mint egy monitor.
<?php /** * @package Joomla.Site * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */
if (version_compare(PHP_VERSION, '5.3.10', '<')) { die('Your host needs to use PHP 5.3.10 or higher to run this version of Joomla!'); }
/** * Constant that is checked in included files to prevent direct access. * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower */ define('_JEXEC', 1);
if (file_exists(__DIR__ . '/defines.php')) { include_once __DIR__ . '/defines.php'; }
if (!defined('_JDEFINES')) { define('JPATH_BASE', __DIR__); require_once JPATH_BASE . '/includes/defines.php'; }
Régóta remekül működött, nem is jártam a tárhely közelében se.
Egy pár napja eltünt a netről és ezt írja ki a böngésző:
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, borzeinfo@x3.hu and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Írtam a szolgáltatónak, aki ezt írta vissza:
könyvtárban található index.php fájl szintaktikailag hibás. A fájl 2015-02-17 18:57:43 dátummal lett feltöltve. A hiba: "PHP Parse error: syntax error, unexpected $end"
Előre bocsájtom hogy a joomla kezelését úgy ahogy megtanultam, de a php-hez nem értek.
> Ad1: A test_youtube a MySQL szerveren készült. Ott minden hiba nélkül lefutott.
Ez jó hír.
> Ad2: Ahogyan korábban írtam, MINDENT úgy csináltam, ahogy a linkelt videóban benne van. A szerző videójában HIBA nélkül lefutott.
Ez is jó hír.
> Ad3: A kódot a Firefox böngészőben indítottam, C:/Localhost/phpmysqltest.php néven.
Ezt már kicsit nehezebben hiszem el, de lehet, hogy a böngésződ képes php-t futtatni.
> Ad4: A MySQL server, illetve a Workbench e művelet közben a háttérben futott, ahogyan az Apache server is. Előbbi a 80-as porton, utóbbi a 3306-os port.
Ad1: A test_youtube a MySQL szerveren készült. Ott minden hiba nélkül lefutott.
Ad2: Ahogyan korábban írtam, MINDENT úgy csináltam, ahogy a linkelt videóban benne van. A szerző videójában HIBA nélkül lefutott.
Ad3: A kódot a Firefox böngészőben indítottam, C:/Localhost/phpmysqltest.php néven.
Ad4: A MySQL server, illetve a Workbench e művelet közben a háttérben futott, ahogyan az Apache server is. Előbbi a 80-as porton, utóbbi a 3306-os port.
(Szerintem a kibaszott 64 bites Winfow 7 lesz a hiba, mert ha a rendszermeghajtóról futtatsz bármit is, rendszergazda jogosultság kell, és mivel a belépési név és a jelszó NEM egyezik meg a MySQL root és password párossal, itt lehet a hiba!) Vagy nem.
Valóban nem a 1. sorban volt a hiba, hanem egy idézőjelet lehagytam a 7. sor végéről.
6. sor $sql = "INSERT INTO users (firstname,lastname,email) 7. sor values ('Kuku','Benko','kukubenko@hotmail.com')";
Csakhogy.
Miután lefuttattam, újabb, most már 3 hiba is keletkezett.
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:Apache24htdocsphpmysqltest.php on line 2
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:Apache24htdocsphpmysqltest.php on line 9
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:Apache24htdocsphpmysqltest.php on line 11 Error:
Szerintem - bocs, még hátulgombolós vagyok e téren - több hiba is lehetséges.
Mivel a videóval teljesen megegyezően írtam a programot, ezért ezekre gondoltam:
1. Mint kiderült - csak most vettem észre-, a MySQL 64 bites, az Apache és a PHP csak 32 bites.
2. Jelszavat adtam meg a MySQL telepítésekor, és talán ez a gond.
3. A videóban a MySQL telepítése során volt lehetőség létrehozni a C:MySQL, valamint a C:MySQLdata könyvtárakat létrehozni, nálam a fel sem kínálta, hanem alapból a C:Program Files(86)MySQL a könyvtár.
Egyébként nem (csak) videóból tanulok, könyvből is, illetve márciusban megyek informatikai rendszergazda szakra.
Nem is merem itt a szokásokat, ezért bocs, ha túl sok infót adok.
Esetleg azt is el tudom képzelni, hogy nem a 11. sorban van a hiba, hanem előtte nincs lezárva egy string.
Mivel a 11. sorban van a string hiba, ezért valószínűleg ott záródik le, a 10. sorig lenne érdemes megnézni az aposztrófok illetve az idézőjelek párosságát.
Az illető program 11-ik vagy az előtti sorában valamit elrontottál (mondjuk lehagytál egy vesszőspontot az előző utasítás végéről). Idézd be azt a részt, vagy még inkább tedd ki valami publikus helyre, mert ez a fórum kegyetlenül bánik a programlistákkal.
Ezt elolvasva ez egy olyan valami, ami visszatér azzal hogy van-e még result, és azt a resultot prepareli is, utánna a store result-al vagy user result-al le kell fetchelni.
Viszont a te while feltételedben hozzá van éselve a more_results, ami miatt ha nincs több result akkor kilép.
Erős tippem, hogy az történik, hogy az és miatt muszáj mindkettőt kiértékelni, és balról jobbra haladva teszi. A next_result kiértékelése előveszi az utolsó resultot és igazat ad vissza mert volt mit elővegyen, ezután értékelődik ki a more_results ami hamisat ad vissza, mert nincs több, pont az előbb lőtted el az utolsót. Így kilép, és az utolsó ottmarad lefetcheletlenül.
Elnézést ha nem voltam php meg mysql szabatos, de nagyon nem a területem.
A ciklusfeltételem (szerintem) Laja #9963-as megoldásának procedurális változata, ami kivédi a strict hibát. Ha ezt visszaalakítom, ott vagyok, ahol kezdtem az egészet.
Kérlek áruld el a megoldást, mert én nem tudok jobbat kitalálni. Sajnos/szerencsére nem ebből élek, nincs is akkora gyakorlatom, mint nektek.