PHP5:ssa ei ole MySQL API:ia oletusarvoisesti, se pitää lisätä manuaalisesti optiolla. Ongelma on se että PHP5:ssa on tarkoitus käyttää uutta MySQL API:ia nimeltä mysqli (ei siis vanha mysql) jolla voi käyttää MySQL4.1 piirteitä.
Jos palvelimet siirtyvät käyttämään PHP5:a, silloin rikkontuu kaikki ne sivut jotka käyttävät vanhaa mysql-API:a.
En ymmärrä miten tämä tilanne on tällainen, joudun tekemään tällä hetkellä sivuja (palvelimella PHP4.0) joka siis lakkaa toimimasta kun ylläpitäjä päivittää PHP5:een
--- onko asia todella näin vai olenko ymmärtäny asian väärin?
Jaska
Jos palvelimet siirtyvät käyttämään PHP5:a, silloin rikkontuu kaikki ne sivut jotka käyttävät vanhaa mysql-API:a.
En ymmärrä miten tämä tilanne on tällainen, joudun tekemään tällä hetkellä sivuja (palvelimella PHP4.0) joka siis lakkaa toimimasta kun ylläpitäjä päivittää PHP5:een
--- onko asia todella näin vai olenko ymmärtäny asian väärin?
Jaska
Vastaukset 3
Vanhimmat
PHP5:den mukana tulee parannettu MySQL kirjasto nimeltään mysqli jota suositellaan käytettäväksi.
Mutta PHP5:een on myös mahollista asentaa mysql kirjasto jolloin vanhatkin scriptit toimivat ilman muutosta.
Oma veikkaukseni on, että lähes jokaisessa palvelimessa tulee toimimaan mysql ja mysqli kirjastot rinnakkain.
Mutta uusi mysqli kannattaa huomioida scriptejä tehdessä. Eikä se ole suuri työ, kun on tehnyt oman tietokanta kirjaston, sitähän sit voi käyttää kaikissa scripteissä, näin kannattaakin tehdä, jolloin virheenhallinta ja tietokannan vaihtaminenkin on paljon helpompaa. Tosin PHP sisältää oman juttunsa http://fi.php.net/manual/fi/ref.dbx.php mutta oman käsityksen mukaan sitä tuetaan huonosti, tosin voin olla väärässäkin.
Yksinkertaisimmillaan tekee tietokanta kirjaston joka tarkistaa onko mysqli käytettävis (http://fi.php.net/manual/fi/function.function-exists.php) ja sit includettaa tämän kirjaston, ellei ole niin mysql kirjaston.
Olishan tän asian mielestäni PHP voinut tehdä paremminkin, kuten korvata kokonaan toi mysql kirjasto uudella mysqli, mutta siten, että vanhatkin scriptit olis toiminnu sillä. Ilmeisesti asiat kuinken muuttu senverran, ettei tämä ollut mahollista, ja päätettiin tehdä kokonaan uusi, tiedä sit.
Se miks MySQL API oletusarvoinen poistettiin liittyy tekijänoikeuksiin jne... Jonka takia PHP:n asentaja joutuu sen itse lisäämään. Nykyään se puuttuu nelossarjastakin.
Kiitti kommenteista, pyrin siirtymään kyllä uusissa projekteissa mysqli:iin mahdollisuuksien mukaan, mutta ei olisi mukavaa mennä läpi kaikki vanhat PHP sivut jotka rikkoontuu PHP5:ssa ellei sitten molemmat API:it (mysql&mysqli) ole tuettuna.
*Oma veikkaukseni on, että lähes jokaisessa palvelimessa tulee toimimaan mysql ja mysqli kirjastot rinnakkain.*
Niin,.. huoleni taitaa sittenkin olla aiheeton.
Jaska