PHP handleiding

PHP TUIS PHP Inleiding PHP installeer PHP sintaksis PHP opmerkings PHP veranderlikes PHP Echo / Druk PHP datatipes PHP Strings PHP-nommers PHP Wiskunde PHP konstante PHP-operateurs PHP As...Anders...Elseif PHP skakelaar PHP-lusse PHP funksies PHP-skikkings PHP Superglobals PHP RegEx

PHP- vorms

PHP-vormhantering PHP-vorm validering PHP-vorm word vereis PHP-vorm URL/e-pos PHP-vorm voltooi

PHP Gevorderd

PHP datum en tyd PHP sluit in PHP-lêerhantering PHP-lêer oop/lees PHP-lêer skep/skryf PHP-lêer oplaai PHP-koekies PHP-sessies PHP filters PHP-filters Gevorderd PHP-terugbelfunksies PHP JSON PHP-uitsonderings

PHP OOP

PHP Wat is OOP PHP Klasse/Objekte PHP Konstrukteur PHP vernietiger PHP Toegangswysigers PHP erfenis PHP konstante PHP Abstrakte Klasse PHP-koppelvlakke PHP eienskappe PHP statiese metodes PHP Statiese Eienskappe PHP naamruimtes PHP Iterables

MySQL- databasis

MySQL-databasis MySQL Connect MySQL Skep DB MySQL Skep tabel MySQL Voeg data in MySQL Kry Laaste ID MySQL Voeg veelvuldige in MySQL voorberei MySQL Kies Data MySQL Waar MySQL Bestel deur MySQL verwyder data MySQL-opdateringsdata MySQL-limietdata

PHP XML

PHP XML-ontleders PHP SimpleXML-ontleder PHP SimpleXML - Kry PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX-databasis AJAX XML AJAX Live Search AJAX-peiling

PHP voorbeelde

PHP voorbeelde PHP samesteller PHP vasvra PHP Oefeninge PHP-sertifikaat

PHP- verwysing

PHP Oorsig PHP Skikking PHP-kalender PHP datum PHP gids PHP fout PHP-uitsondering PHP lêerstelsel PHP filter PHP FTP PHP JSON PHP sleutelwoorde PHP Libxml PHP-pos PHP Wiskunde PHP Diverse PHP MySQLi PHP-netwerk PHP-uitsetbeheer PHP RegEx PHP SimpleXML PHP-stroom PHP-string PHP veranderlike hantering PHP XML-ontleder PHP zip PHP Tydsones

PHP Koppel aan MySQL


PHP 5 en later kan met 'n MySQL-databasis werk deur:

  • MySQLi-uitbreiding (die "i" staan ​​vir verbeterde)
  • PDO (PHP Data Objects)

Vroeër weergawes van PHP het die MySQL-uitbreiding gebruik. Hierdie uitbreiding is egter in 2012 opgeskort.


Moet ek MySQLi of PDO gebruik?

As jy 'n kort antwoord nodig het, sal dit wees "Wat ook al jy wil".

Beide MySQLi en PDO het hul voordele:

PDO sal op 12 verskillende databasisstelsels werk, terwyl MySQLi net met MySQL-databasisse sal werk.

Dus, as jy jou projek moet verander om 'n ander databasis te gebruik, maak PDO die proses maklik. Jy hoef net die verbindingstring en 'n paar navrae te verander. Met MySQLi sal jy die hele kode moet herskryf - navrae ingesluit.

Albei is objekgeoriënteerd, maar MySQLi bied ook 'n prosedurele API.

Albei ondersteun Voorbereide Stellings. Voorbereide stellings beskerm teen SQL-inspuiting, en is baie belangrik vir webtoepassingsekuriteit.


MySQL-voorbeelde in beide MySQLi- en PDO-sintaksis

Hierin en in die volgende hoofstukke demonstreer ons drie maniere om met PHP en MySQL te werk:

  • MySQLi (objekgeoriënteerd)
  • MySQLi (prosedurele)
  • BOB

MySQLi installasie

Vir Linux en Windows: Die MySQLi-uitbreiding word in die meeste gevalle outomaties geïnstalleer wanneer php5 mysql-pakket geïnstalleer is.

Vir installasie besonderhede, gaan na: http://php.net/manual/en/mysqli.installation.php


PDO installasie

Vir installasiebesonderhede, gaan na: http://php.net/manual/en/pdo.installation.php



Maak 'n verbinding met MySQL oop

Voordat ons toegang tot data in die MySQL-databasis kan kry, moet ons aan die bediener kan koppel:

Voorbeeld (MySQLi objekgeoriënteerd)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Let op die objekgeoriënteerde voorbeeld hierbo:

$connect_error was gebreek tot PHP 5.2.9 en 5.3.0. As jy versoenbaarheid met PHP-weergawes voor 5.2.9 en 5.3.0 moet verseker, gebruik eerder die volgende kode:

// Check connection
if (mysqli_connect_error()) {
  die("Databasisverbinding het misluk: " . mysqli_connect_error());
}

Voorbeeld (MySQLi-prosedure)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Voorbeeld (BOB)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Let wel: In die PDO-voorbeeld hierbo het ons ook 'n databasis (myDB) gespesifiseer . PDO vereis 'n geldige databasis om aan te koppel. As geen databasis gespesifiseer is nie, word 'n uitsondering gegooi.

Wenk: 'n Groot voordeel van PDO is dat dit 'n uitsonderingsklas het om enige probleme wat in ons databasisnavrae mag voorkom, te hanteer. As 'n uitsondering binne die try{ }-blok gegooi word, stop die skrip om uit te voer en vloei direk na die eerste catch(){ }-blok.


Sluit die verbinding

Die verbinding sal outomaties gesluit word wanneer die skrif eindig. Om die verbinding voor te sluit, gebruik die volgende:

MySQLi objekgeoriënteerd:

$conn->close();

MySQLi-prosedure:

mysqli_close($conn);

BOB:

$conn = null;