PHP: PHP verbinden met MySQL met PDO

Deze documentatie maakt deel uit van de Verbinden met MySQL-gids. Bekijk de volledige gids hier: Leer hoe u verbinding maakt met MySQL vanuit PHP met behulp van MySQLi en PDO.

👋 Welkom bij de Stackhero-documentatie!

Stackhero biedt een PHP cloud platform dat is ontworpen voor snelle en betrouwbare deployments:

  • Deploy uw PHP-applicatie naar productie in enkele seconden met een eenvoudige git push.
  • Gebruik uw eigen domein, met automatisch geconfigureerde HTTPS-certificaten. Er zijn geen handmatige stappen nodig.
  • Vertrouw op automatische back-ups, one-click updates en duidelijke, voorspelbare prijzen. Stackhero regelt deze zaken, zodat u zich kunt richten op uw code.
  • Profiteer van uitstekende performance en security op een privé, dedicated infrastructuur die speciaal voor uw applicaties is gebouwd.

Maak uw workflow efficiënter en bespaar tijd. Beginnen met Stackhero's PHP cloud hosting duurt slechts een paar minuten.

PDO biedt een flexibele methode om PHP met MySQL te verbinden. Het onderstaande voorbeeld illustreert hoe u PDO kunt gebruiken om een verbinding tot stand te brengen. Het behandelt ook mogelijke SSL-certificaatproblemen die kunnen optreden als uw systeem geen toegang heeft tot CA-certificaten.

<?php

$hostname = '<XXXXXX>.stackhero-network.com';
$user = 'root';
$password = '<yourPassword>';
$database = 'root'; // Voor productieomgevingen, overweeg om een speciale database en gebruiker aan te maken

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

$options = array(
  // Als u een fout tegenkomt zoals "Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1...",
  // kan het zijn dat de /etc/ssl/certs/ directory geen CA-certificaten bevat
  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 'U bent verbonden met een database die versie ' . $version[0] . "\n";

?>

Als u een fout ziet zoals Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1. OpenSSL Error messages: error:0A000086:SSL routines::certificate verify failed, is het waarschijnlijk dat de /etc/ssl/certs/ directory van uw systeem niet de benodigde CA-certificaten bevat.

Als u toegang heeft tot het systeem dat uw PHP-code uitvoert, kunt u de certificaten als volgt installeren:

  1. Op Ubuntu/Debian, voer sudo apt-get install ca-certificates uit
  2. Op Alpine Linux, voer apk add ca-certificates uit

Als u geen directe toegang heeft om deze certificaten op uw systeem te installeren, kunt u het certificaat handmatig installeren:

  1. Download het certificaat naar uw computer: https://letsencrypt.org/certs/isrgrootx1.pem
  2. Voeg het isrgrootx1.pem bestand toe aan uw PHP-projectbestanden.
  3. Comment de regel PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/' uit
  4. Uncomment de regel PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem'