Conexiunea cu o baza de date MySql în Php
E simplu ca buna ziua :).
Sunt doua tipuri de conexiune:
1. Conexiunea temporara
2. Conexiunea permanenta
Exemplu
<?php
$host_db="localhost";
$nume_db="test";
$user_db="root";
$parola_db="";
$query1 = "select * from utilizatori";
$result1 = mysql_query($query1,$conn) or die("get_config_data: Query failed : [".mysql_error()."$query1"."]");
function Conecteaza()
{
$db_link = mysql_connect($host_db,$user_db,$parola_db);
if (!is_resource($db_link))
{
if(!$db_link)
{
print(' Conecteaza() :Can\'t connect : ['.mysql_errno($db_link).' : '. mysql_error().']');
}
}
else
{
$db_selected = mysql_select_db($nume_db,$db_link);
if (!$db_selected)
{
print('Conecteaza() :Can\'t select database : ['.mysql_errno($db_link).' : '. mysql_error().']');
if (!mysql_ping ($db_link))
{
//here is the major trick, you have to close the connection (even though its not currently working) for it to recreate properly.
mysql_close($db_link);
$db_link = mysql_connect($host_db,$user_db,$parola_db);
mysql_select_db($nume_db,$db_link);
}
}
}
return $db_link;
}
function Conecteaza_permanent()
{
$conn = mysql_pconnect($host_db,$user_db,$parola_db) or die( "Nu ma pot conecta : ".mysql_error().":".$host_db." - ".$user_db.":".$nume_db."");
if (!($conn === false))
{
mysql_select_db($nume_db,$conn) or die("Error in query : Nu pot sa selectez baza de date".mysql_error().":".$host_db.":".$user_db.":".$nume_db."");
}
return $conn;
}
?>
Documentație
Am găsit și următoarea recomandare http://www.php.net/manual/en/mysqlinfo.api.choosing.php referitoare la alegerea funcţiilor API pe care le folosiţi. E recomandat sa verificați temeinic funcţiile pe site-ul php.net pentru că se schimba când ţie lumea mai dragă. Personal eu nu prea folosesc conexiunile permanente şi nici nu le recomand din mai multe cauze. O tabela blocata într-o conexiune permanenta va rămîne blocata pana expira timeout-ul pentru respectiva conexiune. Asta ar putea dura foarte mult și riscați sa blocați serverul. Însuși măria sa serverul Apache se cam înţacă (blochează) dacă are de-a face cu o conexiune permanentă. Mai bine folosiţi conexiunea temporară pentru că oricum ar fi, timpul de comunicaţie dintre PHP şi MySql este destul de mic.Mai multe descrieri şi comentarii găsiţi aici.
Spor la treabă tuturor!