Samizdatová skripta

PHP příkazy pro připojení k datatabázi


Připojení k db serveru

$connect=mysql_connect('server','uživatel','heslo');
mysql_pconnect ($server, $user, $pass);//Vytvoří persistentní (trvalé) spojení s MySQL serverem a vrací identifikátor spojení

Výběr databáze

mysql_select_db ($db);//předpne do zvolené db

Odeslání dotazu

$q="select id from table ";
$vysledek=mysql_query($q,$connect);//funkci lze volat bez 2. parametru a automaticky přiřadí otevřené spojení
echo $celkem = mysql_num_rows($vysledek); //Počet řádků vrácených sql serverem

Zpracování dat poslaných server

Data, které posílá server jako reakci na SQL dotaz jsou uloženy ve formě asocitivního pole.

Lze použít několik funkcí (mysql_fetch_array, mysql_fetch_row, mysql_fetch_assoc, ...). My si popíšeme dva znich.

while ($zaznam = mysql_fetch_array($vysledek))
   {
			echo $zaznam["id"];
}

//výpis dat z dotazu 
  for ($i = 1; $i<= $celkem; $i++)
{
 list($nazev,$obrazek) = mysql_fetch_row($vysledek);

}

Ukončení spojení

Ukončení vykonávání php skriptu se spojení ukončí, ale je slušností to udělat v rámci skriptu.

mysql_close($connect);

Ochrana proti MySQL injection

Funkce mysql_real_escape_string už přestává být podporovaná, doporučit použít přetypování například na intetger.

postačuje vstupy očetřit pomocí funkce mysql_real_escape_string(). Před zavoláním této fuknce je potřeba se přípojit k databázovému serveru.

$neco= mysql_real_escape_string($_POST[neco]);

$neco = (int) $_POST[neco];

Pokud potřebujeme otestovat vše, můžeme použít toto univerzální řešení:

  <?php
foreach ($_REQUEST as $key=>$value) {
	$_REQUEST[$key]=$value;
}
?>

upravit odstranit css

NAVRCHOLU.cz