logo   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
?>






















x
x