PHP: PHP prisijungimas prie MySQL su PDO

Ši dokumentacija yra Prisijungimas prie MySQL vadovo dalis. Visą vadovą rasite čia: Sužinokite, kaip prisijungti prie MySQL iš PHP naudojant MySQLi ir PDO.

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti PHP cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Įdiekite savo programą per kelias sekundes su paprastu git push.
  • Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu, kad padidintumėte saugumą.
  • Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
  • Gaukite optimalų veikimą ir tvirtą saugumą dėka privačios ir dedikuotos VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero PHP cloud hosting sprendimą užtrunka tik 5 minutes!

PDO siūlo lankstų būdą prisijungti PHP prie MySQL. Žemiau pateiktas pavyzdys iliustruoja, kaip naudoti PDO ryšiui užmegzti. Jis taip pat sprendžia galimas SSL sertifikato problemas, kurios gali kilti, jei jūsų sistema neturi prieigos prie CA sertifikatų.

<?php

$hostname = '<XXXXXX>.stackhero-network.com';
$user = 'root';
$password = '<yourPassword>';
$database = 'root'; // Produkcijos aplinkoje apsvarstykite galimybę sukurti atskirą duomenų bazę ir vartotoją

$dsn = "mysql:host=$hostname;dbname=$database";

$options = array(
  // Jei susiduriate su klaida kaip "Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1...",
  // tai gali būti dėl to, kad /etc/ssl/certs/ kataloge trūksta CA sertifikatų
  PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/',
  // PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem',
  PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true,
);

$pdo = new PDO($dsn, $user, $password, $options);

$stm = $pdo->query('SELECT VERSION()');
$version = $stm->fetch();

echo 'Jūs esate prisijungę prie duomenų bazės, kurioje veikia versija ' . $version[0] . "\n";

?>

Jei matote klaidą, tokią kaip Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1. OpenSSL Error messages: error:0A000086:SSL routines::certificate verify failed, tikėtina, kad jūsų sistemos /etc/ssl/certs/ kataloge nėra reikalingų CA sertifikatų.

Jei turite prieigą prie sistemos, kurioje veikia jūsų PHP kodas, galite įdiegti sertifikatus taip:

  1. Ubuntu/Debian naudokite sudo apt-get install ca-certificates
  2. Alpine Linux naudokite apk add ca-certificates

Jei neturite tiesioginės prieigos įdiegti šiuos sertifikatus savo sistemoje, galite įdiegti sertifikatą rankiniu būdu:

  1. Atsisiųskite sertifikatą į savo kompiuterį: https://letsencrypt.org/certs/isrgrootx1.pem
  2. Pridėkite isrgrootx1.pem failą prie savo PHP projekto failų.
  3. Pakomentuokite eilutę PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/'
  4. Atkomentuokite eilutę PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem'