PHP / MySQLi
MySQLi er en gruppe funktioner der udgør PHP's eget interface til MySQL. De kan ikke bruges af andre programmeringssprog og de kan ikke bruges til andre databaser. MySQLi er en udvidet efterfølger af de nu hedengangne "MySQL"-funktioner.
Nedenfor er vist eksempler på CRUD med MySQLi som API.
INSERT
$query = "
INSERT INTO tabel
( felt_navn_01, felt_navn_02, felt_navn_nn ) VALUES
('$var_navn_01', '$var_navn_02', '$var_navn_nnelst_mail')
";
header ("location: næsteprogram.php");
exit;
|
INSERT - i mange / mange tabel
I mange-mange tabeller kan der ikke arbejdes med UPDATE. Istedet anvendes DELETE og INSERT i kombination.
HER BASERET PÅ ENKELT RECORD FRA $_GET-VARIABLER
if (isset($_GET['insert']))
{
$rol_id = $_GET['rol_id'];
$ret_id = $_GET['ret_id'];
// Slet før indsæt
$query_delete = "DELETE FROM rolle_rettighed WHERE fk_rol_id = $rol_id and fk_ret_id=$ret_id ";
$result_delete = mysqli_query ($db_link, $query_delete) or die (mysqli_error($db_link) );
// Indsæt
$query_insert = "
INSERT INTO rolle_rettighed
( fk_rol_id, fk_ret_id ) VALUES
('$rol_id', '$ret_id')
";
$result_insert = mysqli_query ($db_link, $query_insert) or die (mysqli_error ($db_link));
header ("Location: rolret_select.php");
exit;
}
|
UPDATE
if($fejlbeskeder == "")
{
$query = "UPDATE elevstam SET
elst_fornavn = '$elst_fornavn',
elst_efternavn = '$elst_efternavn',
elst_adresse = '$elst_adresse',
elst_sted = '$elst_sted',
elst_postnr = '$elst_postnr',
elst_by = '$elst_by',
elst_tlf = '$elst_tlf',
elst_mail = '$elst_mail'
WHERE elst_id = $elst_id";
$result = mysqli_query ($db_link, $query) or die (mysqli_error ($db_link));
header ("Location: elevstam_select.php");
exit;
}
|
DELETE
$query = "DELETE FROM elevstam WHERE elst_id = $elst_id ";
$result = mysqli_query ($db_link, $query) or die (mysqli_error() );
header ("Location: elevstam_select.php");
exit;
|
SELECT - mange records
SQL-sætningen kan opbygges på et utal af måder.
$query = "SELECT * FROM varestam
inner join designer on des_id = fk_des_id
inner join serie on ser_id = fk_ser_id
ORDER BY vare_nr ASC";
$result = mysqli_query($db_link, $query) or die (mysqli_error ($db_link));
$antal = mysqli_num_rows ($result);
if ($antal > 0)
{
while ($row = mysqli_fetch_assoc ($result))
{
Her placeres brugen af selekterede data.
}
else
{
echo "<p>Der blev ikke fundet nogen data.</p>";
}
?>
|
SELECT - enkelt record
SQL-sætningen kan opbygges på et utal af måder.
$query = "SELECT * FROM tabel WHERE felt_id = $var_id";
$result = mysqli_query($db_link, $query) or die(mysqli_error($db_link));
$row = mysqli_fetch_assoc ($result);
|
SELECT - ved validering
Ved validering er det ofte nødvendigt at afklare om en ident findes / ikke findes. Denne korte select er velegnet dertil - med tilpasning i if-sætningen.
$query = "SELECT * FROM tabel where felt-id = $var-id";
$result = mysqli_query($db_link, $query)or die (mysqli_error (db_link));
$antal = mysqli_num_rows ($result);
if($antal > 0)
{
$fejlbeskeder .= "Passende fejltekst.<br />";
}
|
SELECT - fra Array
Ved SELECT fra en array (typisk indeholdende identer for stamdata) læses arrayen med FOREACH. Det betyder, at SELECT og etablering af uddata etableres for 1 record ad gangen (Ingen while-løkke). Det betyder yderligere, at der ikke her kan indsættes nogen "ORDER BY" og en række andre SQL-parametre i SELECTen.
SQL-sætningen kan opbygges på et utal af måder.
<?php
$vare_id_array = $_SESSION['varer']; // hent array fra $_SESSION
foreach ($vare_id_array as $vare_id) // LÆS ARRAY START
{
$query = "select * from varestam where vare_id = $vare_id";
$result = mysqli_query ($db_link, $query) or die (mysqli_error ($db_link));
$antal = mysqli_num_rows ($result);
$row = mysqli_fetch_assoc($result);
Her placeres brugen af selekterede data
} // FOREACH - LÆS ARRAY SLUT
?>
|
|