Neo-IT



Week: 26
Uw ip adres is: 54.81.197.24

PHP en MySql

PHP

Constanten definieren vb:
Define(‘MYSQL_SERVER’,’localhost’);
Waarom gebruiken? Constanten gedragen zich ook als globale variabelen die je ook kunt gebruiken in bv. Functies.  Bovendien Compressie gebruiken

Snelheid laden van webpagina optimaliseren
@ob_start(‘ob_gzhandler’) aanroepen in het begin van een webpagina

Beveiligen
Plaats de config bestanden met wachtwoorden in een directory die niet te benaderen is vanaf het www

Server side includes
Gebruik include en include_once voor statische html inhoud en
Gebruik require en require_once voor functies e.d. , reden is dat require eerst geparst wordt
 
Voorbeeld van een config_inc.php voor lokaal testen en online
if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') {
    // Lokale MySQL-databaseserver
    define('MYSQL_SERVER',         'localhost');
    define('MYSQL_GEBRUIKERSNAAM', 'root');
    define('MYSQL_WACHTWOORD',     '');
    define('MYSQL_DATABASENAAM',   'test');
    // Lokaal alle foutmeldingen weergeven
    error_reporting(E_ALL | E_STRICT);
} else {
    // Externe MySQL-databaseserver
    define('MYSQL_SERVER',         'INVULLEN');
    define('MYSQL_GEBRUIKERSNAAM', 'INVULLEN');
    define('MYSQL_WACHTWOORD',     'INVULLEN');
    define('MYSQL_DATABASENAAM',   'INVULLEN');
    // Alle foutmeldingen op de live server uitschakelen
    error_reporting(0);
}
// De locale instellen op Nederlands en Nederland en de datum- en tijdzone instellen op Amsterdam.
setlocale(LC_ALL, 'nl_NL', 'nld_nld', 'Dutch_Netherlands');
date_default_timezone_set('Europe/Amsterdam');
@ini_set('date.timezone', 'Europe/Amsterdam');
?>
 
Tenary operator
Een voorbeeld van een tenary operator (if then else in 1 regel):
“Hallo” . ($gebruikersnaam == “Ben”)?”Bennie”:$gebruikersnaam;

Verbinding opzetten naar MySQL met Mysqli
$mysqli = new mysqli("localhost", $config_dbuser, $config_dbpass, $config_dbname);
if ($mysqli->connect_errno) die ("De database is niet bereikbaar.".$mysqli->connect_errno);
if (!$mysqli->set_charset('utf8')) die("Character set kan niet worden geladen.");

$result = $mysqli->query("SELECT naam FROM T_tabel ");
if ($row = $result->fetch_assoc()){
     $_SESSION["naam"] = $row["naam"];
}
$result->free();
$mysqli->close();
?>

Variabele variabele $$
$user = "John";
$$user = "Man";
echo $John --> geeft als resultaat: "Man";

Array
Met de functie array('a','b','c');
is hetzelfde als arary(1=>'a',2=>'b',3=>'c');
arrays kun je ook multi dimensionaal maken, een array in een array
$arr = array(1=> array("naam" => "Ben","leeftijd"=>28),array("naam"=>"Enrico","leeftijd"=>9));
$arr[1]["naam"] = "Ben" 

Met een foreach loop kun je een array doorlopen, vb:
$spelers = array("Jan","Piet","Klaas");
foreach ($spelers as $key => $value){
         print("#$key = $value ");
}
output:
#0 = "Jan"
#1 = "Piet"
#3 = "Klaas"

Cast type
$str = "1";
$nummer = (int) $str;
Zo heb je ook: (float), (real), (double), (string), (bool), (array), (object)

MySQL

MYSQL procedure
CREATE PROCEDURE Adres()
  BEGIN
        SELECT  postcode bla bla, query  die je normaal bij een view schrijft
   END
Vervolgens hoef je alleen nog maar de procedure aan te roepen in MYSQL in dit geval: CALL Adres()

RLIKE in MySql
Met RLIKE kun je in 1 statement op meerdere values zoeken
SELECT naam, telefoon FROM T_tabel WHERE telefoon RLIKE (050|020|030)
RLIKE maakt gebruik van regular expressions, vandaar de R.

Grote bestanden uploaden
In php.ini de volgende parameters aanpassen in bijvoorbeeld:
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M