Oppitunti - SAN-asennus. PDO-ajureilla ei ole väliä Windowsissa Asiakirjojen luominen PHP:llä

Minulla oli sama ongelma, kun päivitin PHP 5.4:ään. minulla oli

Extension_dir = "ext"

tiedostoissa php.ini ja php -m se käynnistyi hyvin ja ilmoitti lataavansa pdo_mysql:n, mutta kun suoritin phpinfo.php:n apachen kautta, ajuri puuttui.

Korjasin sen muuttamalla extension_dir muotoon absoluuttinen polku. Luulen, että hän hämmentyi ajaessaan Apachea ja teki sen suhteessa johonkin muuhun.

; Hakemisto, jossa ladattavat laajennukset (moduulit) sijaitsevat. ; http://php.net/extension-dir; extension_dir = "./" ; Windowsissa: extension_dir = "D:/php-5.4.11-Win32-VC9-x86/ext"

kokeile tätä: etsi tämä tiedostosta php.ini ja poista kommentti extension_dir = "ext"

; Hakemisto, jossa ladattavat laajennukset (moduulit) sijaitsevat. ; http://php.net/extension-dir; extension_dir = "./" ; Windowsissa: extension_dir = "ext"

Kokeile php -m konsolissa, se näyttää PHP-käynnistysvirheet.

Tarkista komennolla phpinfo() varmistaaksesi, että php.ini-polku on sama. Windows-tietokoneissa on yleistä luoda useita php.ini-esiintymiä ja aiheuttaa sekaannusta.

Myös php:n kutsuminen komentoriviltä antaa virheilmoituksen, jossa on lisätietoja siitä, miksi sitä ei voi ladata. On mahdollista, että laajennus, jota yrität ottaa käyttöön, ei ole yhteensopiva PHP-asennuksesi kanssa. nuo. onko se vaarallinen dll-tiedosto, jossa on säikeen turvallinen binaari, vai onko kääntäjävirhe jossain, jossa käytetään sekä vc9:tä että vc6:ta.

Windows Server 2012:ssa, Apache 2.4:ssä, php 5.4:n asentaminen, kaiken muun muuttumisen jälkeen tämä toimi...

PHPIniDir "C:\php\"

PHPIniDir "C:/php/"

Kun olet muuttanut php.ini-kokoonpanon, sinun on käynnistettävä uudelleen Appche-palvelin Windows-palvelussa. Laajennusmoduuli latautuu sitten. käytä seuraavaa koodia tarkistaaksesi:

Minulla oli tämä ongelma Windowsissa IIS:n avulla. php.inissäni oli seuraavat osiot:

Extension=php_pdo_mysql.dll laajennus=php_pdo.dll

Otin ja vaihdoin paikkojani niin, että ilmestyin ensin. Uskon, että ilmoitusjärjestys on tärkeä!

Mihain kommentti vuonna 2012 kuuluu: "Kokeile php -m:ää konsolissa, se näyttää virheitä PHP:tä ajettaessa." Tämä ehdotus osoittautui hyödyllisimmäksi. Jos php.ini-tiedostossa on virheitä, Windows PHP Manager (IIS 8) ei oikein ymmärrä, mitä php.inille tapahtuu.

Siirry komentokehotteeseen ja kirjoita komentokehotteeseen php -m. Ponnahdusikkuna (varoitus) kertoo sinulle mahdollisista virheistä ja antaa näiden ongelmien rivinumerot. Useimmissa tapauksissa ainoa ongelmani oli, että poistin kommentteja (poistin puolipisteen) useilla php.ini-riveillä, joissa minun EI olisi pitänyt tehdä niin.

Toinen hyödyllinen vinkki minulle oli lisätä laajennuskansion koko polku (katso Jeremy Prinen kommentti yllä), mikä auttoi "puuttuvien DLL"-viestien näkymisessä varoituksissa.

Sain vinkkejä täältä:

Käytän PHP 5.2:ta ja Apache 2.2:ta. Korjaus minulle oli kopioida libmysql.dll-tiedosto Apache bin -hakemistoon.

Suosittelen seuraavaa toimenpidettä kaikille, joilla on tämä ongelma: 1) tarkista, että ladattu asetustiedosto on siinä, missä luulet sen olevan (eli että Apache ei käytä oletusarvoista php.ini-tiedostoa) – phpinfo ( ) antaa vastauksen tämä kysymys 2) varmistaaksesi, että kaikki tarvitsemasi laajennukset ovat php\ext-kansiossa ja php.ini-tiedostossa (suosituimmat laajennukset on vain jaettava). 3) Yritä ladata pdo_sqllite. Jos tämä tapahtui phpinfo():ssa Apachen uudelleenkäynnistyksen jälkeen, olet kaventunut ongelmaan, joka johtuu Apachen kyvyttömyydestä ladata tarvittavia mysql-laajennuksia. 4) Noudata yllä olevan linkin ohjeita.

Minulla oli myös tämä ongelma. Minulla on Apache/2.2.22 (Win32)PHP/5.3.23 Windows 7 -koneessa. Ratkaisuni oli muuttaa php.ini-tiedoston extension_dir=C:\Program Files (x86)\PHP\ext muotoon extension_dir="C:. \Ohjelmatiedostot (x86)\PHP\ext. Minun piti vain lisätä lainauksia.

varmista, että pdo*.dll-tiedostot ovat oikeissa paikoissa käyttöjärjestelmän hakemistossa, tarkista, että viittaukset näihin tiedostoihin on sisällytetty php.ini-tiedostoon, tarkista, että dbconnection-rivi on oikea, käynnistä apache uudelleen

Virhe PHP PDO:ta ei ole olemassa versiossa 5.4

Vakava virhe: Luokkaa "DigitalToolBox\PDO" ei löydy tiedostosta C:\SERVER\www\MyAPP\DigitalToolBox\MysqlConnectionTool.php riviltä 19

voit nähdä, että pdo on ladattu, koska se on luettelossa tällä komennolla:

Tulosta_r(get_loaded_extensions());

Tämä virhe tapahtuu nimiavaruuksien käytössä, meidän on lisättävä seuraava ohje koodimme alkuun:

Käytä SAN;

IF($this->works) $voteForThis++;

Jos käytät PHP Manageria IIS:n kanssa, toimi seuraavasti:

PDO-ohjaimet ei arvoa – dll-merkintöjäsi ei voi tilata php.ini-tiedostoon. Tarkista luettelo dll-laajennusmerkinnöistä.

Extension=php_pdo_mysql.dll

merkinnät tulee sijoittaa kaikkien pdo-merkintöjen viereen. Kuten

Extension=php_mysql.dll

merkinnät tulee sijoittaa kaikkien muiden kuin pdo-merkintöjen viereen.

Humala auttaa.

PHP 7.1 x64:ssä Windowsissa, jossa on apache 2.4 x64:

extension_dir="ext" ei toimi minulle,

Absoluuttinen polku: extension_dir="C:\DEV\PHP71\ext\" toimi hyvin

Päätin kirjoittaa tämän postauksen, koska en löytänyt yksinkertaista ja ymmärrettävää kuvausta PHP:n asentamisesta Windowsiin ja tämän ei kovin yleisen yhdistelmän määrittämisestä toimimaan MS SQL 2008:n kanssa.

Työskentelemme parhaillaan suurimman Deep Shift Labsissa koskaan luodun järjestelmän siirtämiseksi Windows 2000:sta ja MS SQL 2000:sta Windows 2008:aan ja MS SQL 2008:aan. Haluaisin kertoa lyhyesti tämän järjestelmän historiasta ja siitä, miksi sitä tarvittiin. PHP:n asentamiseen Windowsiin. Järjestelmässä on noin 800 000 PHP-koodiriviä, ja sen parissa työskentely on jatkunut viimeiset 10 vuotta. Tämä järjestelmä on luotu yhdelle asiakkaallemme. Muutaman ensimmäisen vuoden ajan järjestelmä toimi FreeBSD:llä, Apachella ja PostgreSQL:llä. Sitten asiakasyritys meni pörssiin ja heillä oli ongelma siirtyä kaupallisiin ohjelmistoihin. Jossain vuonna 2004 onnistuimme - alun perin käyttämämme ansiosta - siirtymään ensin FreeBSD/Apachesta Windows 2000/IIS 5:een (PHP toimii ISAPI-moduulina) minimaalisin kustannuksin ja sitten vuonna 2006 siirtämään silloiset pienet molemmat. rakenteeltaan ja koossa, perustuu MS SQL 2000:een.

Vaikein asia vuonna 2006 oli löytää ohjain, joka toimisi MS SQL:n kanssa. Kokeilimme kaikkea, minkä kanssa ADODB saattoi toimia, ja lopulta päädyimme käyttämään Frank Cromanin php_dblib.dll-tiedostoa. Frank tuki tuolloin PHP:n MS SQL -laajennuksia ja auttoi meitä paljon käytännön neuvoilla. php_mssql.dll-ohjain käytti tuolloin Microsoftin ntwdblib.dll-tiedostoa, joka ei toiminut hyvin päivämäärien ja pitkien tekstien kanssa. php_dblib.dll käytti dblib.dll-tiedostoa FreeTDS:stä, emmekä löytäneet sen toiminnassa ongelmia.
Ja sitten tuli hetki, jolloin asiakas halusi siirtyä Microsoftin tukemiin käyttöjärjestelmän ja tietokannan versioihin (Windows 2000 ja MS SQL 2000 eivät ole enää tuettuja), ja tämä on yleensä suurissa yrityksissä yleinen vaatimus. . Luonnollisesti käyttämämme ADODB 4.93 versio vuodelta 2006 ei tukenut mssqlnative-ohjainta, ja siksi tehtävä asetettiin seuraavasti:

Siirrä MS SQL 2000 -tietokanta MS SQL 2008:aan
- siirrä verkkopalvelin Windows 2000:sta ja IIS 5:stä (ISAPI) Windows 2008:aan ja IIS 7:ään (FastCGI)
- Vaihda PHP 5.1.6:sta PHP 5.4.6:een
- vaihda ADODB 4.93:sta 5.17:ään ja siirry samalla uuteen ajuriin "mssqlnative"
- testaa järjestelmää, mukaan lukien kaksi replikaatiota tietokantaan MS SQL 2000- ja MS SQL 2005 -palvelimista

Voit kysyä järkevän kysymyksen: miksi itse asiassa asennamme 5.3.13:n ja siirrymme sitten versioon 5.4.6? Siihen on kaksi syytä. Ensimmäinen on se, että en vain voinut asentaa versiota 5.4.6 määrittämällä IIS manuaalisesti. Vaikka kuinka kovasti yritin, PHP ei nähnyt php.ini-tiedostoa, joka sijaitsee C:\PHP:ssä. Kaikkien käsikirjojen mukaan sinun on luotava PHPRC-muuttuja ja määritettävä siinä polku kansioon php.ini, mutta minun tapauksessani joku teki jotain väärin.

Koska PHP ei nähnyt asetustiedostoa, MS SQL -ajureita ei ladattu. Olin jumissa tässä paikassa pari tuntia ja kysyin foorumilla, aloin etsiä vaihtoehtoja odottaessani Amerikan heräävän ja näkeväni "SOS"-viestini foorumilla. Silloin törmäsin täysin vahingossa sivustoon http://www.microsoft.com/web/platform/phponwindows.aspx, josta löysin etsimäni vaihtoehdon. Ehkä en olisi käyttänyt asennusohjelmaa, ellei se olisi tarjonnut asentaa maagista ja upeaa ohjelmaa, jota en voinut kieltäytyä mahdollisuudesta "koskea". Tuloksena kävi ilmi, että PHP Manager yhdistää normaalisti 5.4.6:n, jolloin sen php.ini-tiedosto näkyy.

Esitän huomionne yhden asennusmenetelmistä.


2. Lataa ei-säikeinen PHP-versio, jota suositellaan käytettäväksi ja . Tiedoston nimessä on _nts_, esimerkiksi - php-5.4.6-nts-Win32-VC9-x86.zip (viimeisin saatavilla oleva versio kirjoitushetkellä) sivustolta http://windows.php.net/ ladata/.
3. Pura se kansioon C:\PHP
4. Lataa uusin MS SQL -ajureiden versio Microsoftilta (tiedosto SQLSRV30) ja pura se kansioon C:\PHP\ext
5. Lataa PHP-asennusohjelma Microsoftin verkkosivustolta. Käytin 5.3.13. Asennataan se.

Se asentaa kaikki tarvittavat komponentit. Noin 10 vuotta on kulunut ja Microsoftin nettisivuille on ilmestynyt todella hienoja juttuja työskennellä Windows-ympäristössä PHP:llä - täällä on sekä ajuri että asennusohjelma, joka luo erityisen PHP-konsolin IIS:n ja IIS:n välimuistin sisäpuolelle. .

Asennuksen jälkeen meillä on PHP 5.3.13 asennettuna Ohjelmatiedostoihin ja PHP Manager IIS:ään.

Kuten näet, PHP Managerin avulla voit hallita konfigurointiparametreja php.inistä, ja laajennukset toimitetaan erikseen. Täältä voit myös nähdä, mitä php.ini-tiedostoa käytetään ja mihin virhelokit kirjoitetaan. Asennusohjelman luomaan FastCGI-käsittelijään on nopea pääsy. On mahdollista lisätä muita PHP-versioita ja vaihtaa niitä. Emme ole testanneet, voidaanko PHP Managerin avulla käyttää yhtä PHP-versiota yhdessä virtuaalipalvelimessa ja toista PHP-versiota toisessa. Uskon, että tämä ja paljon muuta, kuten erilaisten konfiguraatiotiedostojen käyttö eri virtuaalikoneilla, voidaan tehdä manuaalisesti Microsoftin erinomaisen Ruslan Yakushevin avulla. Meidän piti vain lisätä PHP-versio 5.4.6 ja "konsolidoida saavutetut virstanpylväät".

Nyt voimme lisätä PHP 5.4.6:n, joka sijaitsee C:\PHP:ssä. Lisäyksen jälkeen näemme, että uusi PHP-versio on nyt käytössä ja että PHP Manager on luonut uuden käsittelijän, joka on käytössä (emme näe tätä), mutta voimme katsoa PHP:n phpinfo()-sivua. Manager luo dynaamisesti (hienoa!) .

On aika siirtyä laajennuksiin. Poistin mysql:n ja lisäsin molemmat versiot sqlsrv- ja pdo_sqlsrv-ohjaimesta. En tarkistanut, näkeekö IIS muutokset heti, koska olen jo tottunut ajamaan "iisreset" -konsolikomentoa muokkausten jälkeen.

PHP Manager tarjoaa kaksi vaihtoehtoa virheiden käsittelyyn: esivalmistettu kehitystä ja tuotantoa varten.

Jos muutat virhelokin polkua, PHP Manager ei nähnyt muutoksiani, ja IIS oli käynnistettävä uudelleen. Olen jo tottunut vanhanaikaiseen tapaan, että ladattujen tiedostojen, istuntojen ja PHP-lokien väliaikainen kansio sijaitsee C:\tmp:ssä. Yleensä "Määritä virheraportointi" ja "Aseta suoritusajan rajoitukset" ovat vain mukavuussyistä, koska ne kaikki (paitsi laajennusmoduuleja) ovat saatavilla "Hallitse kaikkia asetuksia" -kohdasta.

Jos sinun on käsiteltävä HTML-tiedostoja PHP:llä, luo toinen kartoitus tarkastelemalla PHP:n kartoitusparametreja.

Yritetään nyt muodostaa yhteys MS SQL:ään ohjaimen ja ADODB:n kautta. Ensin sinun on varmistettava, että palvelin sallii TCP/IP-yhteydet ja että portti 1433 on auki Windowsin palomuurissa.

Minun tapauksessani näin ei ollut. Jos et pysty muodostamaan yhteyttä PHP:llä, on suositeltavaa asentaa ja käyttää SQLCMD:tä testaukseen (esimerkiksi tässä on tarvitsemamme versio).

Haluan huomauttaa, että uusi Microsoft-ohjain palauttaa datetime PHP DateTime -objektina. Mutta käytämme ADODB:tä, joka tekee:

$this -> kentät [ $avain ] = $arvo -> muoto ("Y-m-d \T H:i:s\Z") ;

adodb-mssqlnative.inc.php:n rivillä 794. Näin ollen palauttamalla meille merkkijonon '2012-08-22T23:42:22Z' tavallisen '2012-08-22 23:42:22' sijasta ja siksi taaksepäin yhteensopivuuden varmistamiseksi voit korjata adodb-mssqlnative.inc.php tämän tapa:

if (on_array ($this -> kentät) ) ( foreach ($this -> kentät muodossa $avain => $arvo ) ( if (on_object ($arvo ) && metodi_exists ($arvo , "muoto" ) ) ( //on DateTime-objekti //$tämä->kentät[$avain] = $arvo->muoto("Y-m-d\TH:i:s\Z"); //DSL DateTime -tulostusmuodon korjaus$this -> kentät [ $avain ] = $arvo -> muoto ( "Y-m-d H:i:s" ) ; ) ) )

Tässä on esimerkkitiedosto, joka sisältää esimerkkejä Microsoft-ohjaimen käytöstä suoraan ja ADODB:n kautta.

"Suora ohjainyhteys
" ; $connectionInfo = array ( "UID" => "aws_user" , "PWD" => "Q1w2e3r4t5" , "Database" => "AWS_Database" ) ; /* Yhdistä SQL Server Authenticationin avulla. */$conn = sqlsrv_connect("192.168.3.86, 1433" , $connectionInfo ) ; if ( $conn === false ) ( echo "Yhteyttä ei voi muodostaa.
" ; kuole ( print_r ( sqlsrv_errors() , true ) ) ) ; ) $tsql = "VALITSE GETDATE() AS tänään" ; $stmt = sqlsrv_query( $conn , $tsql ) ; if ( $stmt === false ) ( "Virhe kyselyn suorittamisessa.
"
; die(print_r(sqlsrv_errors(), tosi)); ) $rivi = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ; echo "Tänään on". $rivi [ "tänään" ] -> muoto ( "Y-m-d H:i:s" ) . "
" ; sqlsrv_free_stmt( $stmt ) ; sqlsrv_close( $conn ) ; ini_set ( "sisällytä_polku", ini_get ( "sisällytä_polku") . ";" . $_SERVER ["DOCUMENT_ROOT" adodb.inc.php" ) ; $user = "aws_user" ; $salasana = "Q1w2e3r4t5" ; $palvelin = "192.168.3.86, 1433" ; $tietokanta = "AWS_tietokanta" ; echo "ADODB MSSQL Natiiviyhteys
"
; $adoConnection = ADONewConnection("mssqlnative" ) ; //$adoConnection->debug = tosi;$adoConnection -> Yhdistä ($palvelin, $käyttäjä, $salasana, $tietokanta) ; $rs = $adoConnection -> Suorita ($tsql) ; echo "Tänään on". $rs -> kentät [ "tänään" ] . "
" ; $adoConnection -> Sulje () ; ?>

Lopuksi haluaisin huomauttaa, että Microsoftin verkkosivustolta löydät paljon hyödyllistä tietoa. Löydät esimerkiksi merkinnän PHP/IIS-foorumille ja muita hyödyllisiä linkkejä. Sijaitsee foorumit, jotka on omistettu MS SQL -tietokantojen PHP-ajureille. En ole ainoa heidän kanssaan -

Kuinka onnistuit asentamaan Microsoft Drivers 3.0 for PHP v5.4 for SQL Server IIS:ään Web Platform Installerin kautta? Windows 2008 Serverissäni ja MS SQL 2008:ssa ja IIS7:ssä Web Platform Installer ei halunnut asentaa, se antoi virheilmoituksen:
Tätä tuotetta ei voi asentaa, koska tuotteen, josta se riippuu, asennus epäonnistui.

Ja tässä ovat riippuvuusvirheet:
Tuote: Microsoft SQL Server 2012 Native Client — Tämän tuotteen asennus epäonnistui, koska tämä käyttöjärjestelmä ei tue sitä. Lisätietoja tuetuista kokoonpanoista on tuotteen dokumentaatiossa.

Joten miten asensit Microsoft SQL Server 2012 Native Clientin, jos asennusohjelma kirjoittaa, että Windows 2008 Server ei tue sitä?

En asentanut "Microsoft Drivers 3.0 for PHP v5.4 for SQL Server IIS:ssä Web Platform Installerin kautta"

Latasin PHP 5.3.6 -asennusohjelman Microsoftin verkkosivuilta ja asensin sen. Seuraavaksi lisäsin juuri 5.4. Viestissä kappale alkaa sanoilla "Nyt voimme lisätä PHP 5.4.6, .....".
Kohdan 5.4.6 valmistelutyöt on kuvattu yllä olevassa viestissä:

1. Luo kansiot C:\PHP ja C:\tmp
2. Lataa ei-säikeinen PHP-versio, jota suositellaan käytettäväksi täältä ja täältä. Tiedoston nimessä on _nts_, esimerkiksi - php-5.4.6-nts-Win32-VC9-x86.zip (viimeisin saatavilla oleva versio kirjoitushetkellä) sivustolta http://windows.php.net/ ladata/.
3. Pura se kansioon C:\PHP
4. Lataa uusin MS SQL -ajureiden versio Microsoftilta (tiedosto SQLSRV30) ja pura se kansioon C:\PHP\ext

Katso kohta 4? Pura se vain pakkauksesta ja laita se kansioon. Verkkoalustan asennusohjelmaa ei ole

Se on vain, että kuvakaappauksessasi näkyy Web Platform Installer

PS: ongelma on ratkaistu, oli tarpeen asentaa SP2 Windows 2008 Serverille, koska Et voi asentaa sitä SP1:een tai ilman Service Packia ollenkaan. Muuten, en vieläkään ymmärrä, mikä oli syy asentaa 5.3.6 ja sitten asentaa 5.4.6? Ymmärsin selityksen, mutta kysymys kuuluu, miksi 5.3.6, miksi ei 5.4.0 (ja asenna sitten 5.4.6)?

Viestissä ei ole sanaakaan 5.3.6:sta.

Web Platform Installer asentaa kaiken näissä kahdessa versiossa (se on tällä hetkellä Microsoftin verkkosivustolla) - http://www.microsoft.com/web/platform/phponwindows.aspx PHP 5.2.17 ja 5.3.5.
Kun asensin uusimman saatavilla olevan Web Platform Installer -version, oli 5.3.13, ja tarvitsin 5.4:n. Joten kuvailin prosessia, jossa 5.3.13 asennetaan Web Platform Installerista ja 5.4 lisätään sen jälkeen.

Mitä tulee: "Tuote: Microsoft SQL Server 2012 Native Client - Tämän tuotteen asennus epäonnistui, koska tämä käyttöjärjestelmä ei tue sitä. Lisätietoja tuetuista kokoonpanoista on tuotteen dokumentaatiossa."

Kuten tavallista Microsoftin kanssa, et löydä SP2:ta vaatimuksena, vaan alla kommenteissa:
——————
"SQL Server Native Client 2012 voidaan asentaa Windows Server 2008 SP2:n kanssa"

Windows Server 2008 - Epäonnistui
- Windows Server 2008 SP1 – Ei vielä testattu
- Windows Server 2008 SP2 – Onnistui!
——————-

Periaatteessa päivitin Win 2008 R2:n ennen asennusta, enkä törmännyt tähän ongelmaan, enkä siksi kuvaillut sitä viestissäni.

"Ei sanaakaan viestissä 5.3.6:sta." - Otan sanani takaisin. Jos et olisi kirjoittanut sitä, virhe olisi jäänyt. Kiitos. Korjattu viesti. En asentanut versiota 5.3.6, vaan versiota 5.3.13, joka oli viimeinen saatavilla Web Installerista viestiä kirjoittaessani.

Muuten, koko prosessia voidaan nopeuttaa hieman, jos asennat kaiken Web Platform Installer -sovelluksen kautta, lopulta meidän on vain lisättävä erikseen ja sitten lisättävä uudempi PHP-versio, eikä meidän tarvitse ladata mitään manuaalisesti, meidän ei tarvitse ladata mitään, kaikki tapahtuu lähes automaattisesti.

  • Muuten, koko prosessia voidaan nopeuttaa hieman, jos asennat kaiken Web Platform Installerin kautta,

    Ja niin tehtiin. Mitä pidät viestissäni tarpeettomana?

  • 1. PDO- ja PDO_Sqlite-ajurit ovat oletusarvoisesti käytössä PHP 5.1.0:ssa. Saatat joutua valitsemaan eri SAN-ajurin tietylle tietokannalle, jolloin katso lisätietoja kyseisen SAN-ohjaintietokannan dokumentaatiosta.

    Huomautus: Kun rakennat SAN jaettuna laajennuksena (ei suositella), kaikki SAN-ajurit on ladattava itse PDO:n jälkeen.

    2. Kun asennat PDO:ta yleiseksi moduuliksi, sinun tulee muuttaa php.ini-tiedosto niin, että PDO-pääte latautuu automaattisesti, PHP toimii.

    Sinun on myös varmistettava, että tietyt tietokanta-ohjaimet ovat olemassa ja että ne on lueteltu pdo.so:n jälkeen, koska PDO on alustettava ensin ennen kuin PDO-tietokanta-ohjaimet ladataan.

    Jos suoritit PDO:n staattisesti tiettyä laajennustietokantaa vastaan, voit ohittaa tämän vaiheen.

    3. laajennus = pdo.so

    PDO:n asentaminen Windows-järjestelmiin

    1. PDO ja kaikki keskeiset PDO-ajurit toimitetaan PHP:n kanssa yleisinä laajennuksina. Aktivoidaksesi sinun on poistettava kommentit php.ini-tiedostosta:

    Extension=php_pdo.dll

    Huomautus: Tämä vaihe ei ole välttämätön PHP 5.3:lle ja sitä uudemmille versioille, koska DLL-tiedostoa ei enää tarvita PDO:lle.

    Extension=php_pdo.dll
    extension=php_pdo_firebird.dll
    extension=php_pdo_informix.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    extension=php_pdo_oci8.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll

    Näiden kirjastojen on oltava järjestelmän "extension_dir"-hakemistossa.

    SAN:n toiminnan tarkistaminen

    Tarkista, muodostaako PDO yhteyden phpinfo()-funktiolla.

    Phpinfo();

    Sivulta sinun on löydettävä PDO-lohko sekä pdo_mysql-, pdo_sqlite- jne. lohkot. liittämiesi PDO-ajureiden mukaan.

    Suorita seuraava koodi.

    Echo "Saatavilla olevat ohjaimet:";
    print_r(PDO::getAvailableDrivers());
    $pdo = uusi PDO("sqlite:my.db");
    echo "PDO-objekti:";
    print_r($pdo);

    Suorituksen tuloksen tulisi olla rivi:

    PDOOobjekti()

    Tämä tarkoittaa, että yhteys SQLite-tietokantaan muodostetaan normaalisti. Komentosarjan suorituksen tulos on komentosarjahakemistoon luotu my.db-tiedosto.

    PDO-asetukset

    PDO-asetukset, kuten pdo.dsn.*

    asetukset, kuten pdo.dsn.* - voit määrittää oletusarvoiset käyttöparametrit.

    Muuttujan muutostaso pdo.dsn.* - php.ini-tiedosto

    Viimeksi päivitetty: 30.10.2015

    Edellisessä luvussa esitettiin yleiskatsaus MongoDB:n peruskonsepteihin ja toimivuuteen. Todellisuudessa vain harvat ihmiset työskentelevät konsolin kautta syöttäen yhden asiakirjan kerrallaan tietokantaan. Tyypillisesti tietokanta vastaanottaa tietovirran ulkoisesta sovelluksesta tai päinvastoin palauttaa nämä tiedot siihen. Siksi meidän on järjestettävä työ MongoDB:n ja jollakin ohjelmointikielellä kirjoitetun sovelluksen välillä. Ohjelmointikieleksi valittiin PHP, jonka esimerkin perusteella katsomme tällaista vuorovaikutusta yhtenä yleisimmistä kielistä.

    Ajurin asennus PHP:lle

    Asennetaan PHP-kielen ohjain. Itse ohjain voidaan ladata GitHubin projektisivulta: https://github.com/mongodb/mongo-php-driver.

    Kun olet ladannut ohjaimen ja purkanut sen paketin Unix-järjestelmissä, anna seuraavat komennot:

    Phpize ./configure tee sudo make install

    Lisää sitten seuraava rivi php.ini-tiedostoon:

    Extension=mongo.so

    Asentaaksesi ohjaimen Windows-käyttöjärjestelmään, sinun on ladattava uusin paketti sivulta https://s3.amazonaws.com/drivers.mongodb.org/php/index.html. Tällä hetkellä uusin paketti on php_mongo-1.4.5.zip.

    Joten, ladataan ja puretaan tämä arkistopaketti. Se sisältää ajurit mahdollisille php-versioille. Sinun on valittava se, joka vastaa php-versiotasi, ja asetettava vastaava ajuritiedosto hakemistoon php/ext, johon kaikki php:n laajennukset on tallennettu.

    Sitten sinun on tehtävä muutos tiedostoon php.ini, lisäämällä seuraavan rivin osaan, johon laajennukset on kytketty:

    Extension=php_mongo-[versio].dll

    Esimerkiksi minun tapauksessani version php 5.4 Tread Safe kanssa lisäsin hakemistoon php/ext tiedosto php_mongo-1.4.5-5.4-vc9.dll. Ja niin lisään php.iniin laajennus=php_mongo-1.4.5-5.4-vc9.dll

    Sitten käynnistämme verkkopalvelimen uudelleen ja testaamme. Mongodb-ohjaimen yhteyden testaamiseen voit käyttää tavallista phpinfo()-funktiota, joka tulostaa kaikki tiedot php:stä web-palvelimelle. Meidän tapauksessamme sen pitäisi tulostaa seuraava:

    Yhdistäminen MongoDB:hen PHP:stä

    Kun ohjain on yhdistetty php:hen, voimme nyt muodostaa yhteyden tietokantaan ja olla vuorovaikutuksessa sen kanssa php-koodista.

    Muodostaaksesi yhteyden tietokantaan, kirjoita vain yksi rivi koodiin:

    $yhteys = new Mongo();

    Tässä tapauksessa muodostamme yhteyden palvelimeen, joka toimii localhostilla vakioportissa 27017. Voimme kuitenkin muodostaa yhteyden myös ulkoiseen palvelimeen:

    $yhteys = uusi Mongo("jokusivusto.fi");

    Tässä sanotaan muodostavan yhteys MongoDB-palvelimeen, joka toimii somesite.com-verkkotunnuksessa ja myös portissa 27017. Jos käytetään toista porttia, voimme myös määrittää sen:

    $yhteys = uusi Mongo("jokusivusto.fi:888");

    Kun työ tietokannan kanssa on valmis, voimme sulkea yhteyden sulkemismenetelmällä:

    $yhteys->sulje();

    Asiakirjojen luominen PHP:llä

    Näimme aiemmin, että mongodb:n asiakirja todella edustaa objektia JSON-muodossa. Se voi tallentaa avaimia, jotka liittyvät joihinkin arvoihin. Arvot itse voivat myös edustaa monimutkaisia ​​avainarvoobjekteja. Joten loimme asiakirjan, joka edustaa henkilöä:

    > steve = (( "nimi": "Steve", "ikä": 25, "kielet": ["englanti", "ranska"], yritys: ( "nimi": "Omena", "vuosi": 1976 ) ))

    Luodaan vastaava dokumentti PHP:llä. Tätä varten käytämme assosiatiivisia taulukoita:

    $steve = array("nimi" => "Steve", "ikä" => 25, "languages"=> array("englanti", "ranska"), "yritys" => array("nimi" => " Apple", "vuosi" => 1976))