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 kant-en-klare PHP cloud oplossing die tal van voordelen biedt, waaronder:

  • Implementeer uw applicatie in seconden met een eenvoudige git push.
  • Gebruik uw eigen domeinnaam en profiteer van de automatische configuratie van HTTPS-certificaten voor verbeterde beveiliging.
  • Geniet van gemoedsrust met automatische back-ups, updates met één klik, en eenvoudige, transparante en voorspelbare prijzen.
  • Krijg optimale prestaties en robuuste beveiliging dankzij een privé en dedicated VM.

Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de PHP cloud hosting oplossing van Stackhero te proberen!

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'