1.0 : 1995 :
PHP: Personal Home Page2.0 : 1997 :
Base du langage PHP actuel3.0 : 1998-2000 :
PHP: Hypertext Preprocessor4.0 : 2000-2001 :
Zend engine4.3 : 2002-2005 :
CLI: Command line interface5.0 : 2004-2005 :
Zend engine 2, Programmation objet5.3 : 2009-2014 :
Namespace, closure5.4 : 2012-2015 :
Trait6.0 : ......... :
Unicode7.0 : 2015-2018 :
Zend engine 3<?php
et ?>
;
//
pour un commentaire sur une ligne/*
pour un commentaire sur plusieurs lignes */
<em><?php
//* Comment hack
echo 'Hello world';
// */
?></em>
<?php echo TRUE; ?>
<?php echo true; ?>
<?php var_dump(TRUE); ?>
<?php echo FALSE; ?>
<?php echo false; ?>
<?php var_dump(FALSE); ?>
(bool)
ou (boolean)
false
:
false
0
0.0
""
et la chaîne "0"
NULL
(ainsi que les variables non définies)true
<?php
var_dump((bool) "");
var_dump((bool) 1);
var_dump((bool) -2);
var_dump((bool) "foo");
var_dump((bool) 2.3);
var_dump((bool) array(12));
var_dump((bool) array());
var_dump((bool) "false");
?>
-
ou +
decimal : [1-9][0-9]*
| 0
hexadecimal : 0[xX][0-9a-fA-F]+
octal : 0[0-7]+
binary : 0b[01]+
integer : [+-]?decimal
| [+-]?hexadecimal
| [+-]?octal
| [+-]?binary
(int)
ou (integer)
false
correspond à 0
et true
à 1
0
LNUM [0-9]+
DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
(float)
ou (double)
int
puis en float
<?php
//*
var_dump(42);
var_dump(-42);
var_dump(052);
var_dump(0x2A);
var_dump((int)4.2);
var_dump((int)"la réponse est 42");
var_dump((int)"42, la réponse est");
var_dump((float)"42.0 42");
// */
// Floating point problem
/*
var_dump((int) ((0.1+0.7)*10));
var_dump((int)1.999999999999999);
var_dump((int)1.9999999999999999);
// */
?>
'
ou "
'
il faut le préfixer par \
\
il faut utiliser \\
\
sont affichés (\n
, \r
) "
il faut le préfixer par \
\
sont interprêtés(string)
echo
, print
true
est converti en "1"
et false
en ""
echo
et print
ne sont pas de vraies fonctions (l'utilisation
des parenthèses est facultative, mais recommandée)
la fonction printf
affiche une chaîne de caractère formatée et
retourne la longueur de la chaîne affichée
int printf (string $format [, mixed $args [, mixed $... ]] )
la fonction sprintf
retourne une chaîne formatée
string sprintf (string $format [, mixed $args [, mixed $... ]] )
"%s"
pour une chaîne de caractères "%d"
pour un entier "%f"
pour un réel "%4d"
affiche un entier de 4 caractères préfixé par des espaces "%'04d"
affiche un entier de 4 caractères préfixé par des 0
"%2$s"
affiche le 2e paramètre comme une chaîne de caractères "%1$'04d"
affiche le 1er paramètre sous forme d'entier de
4 caractères minimum préfixé par des 0
strlen
: retourne la longueur de la chaînestrcmp
: compare deux chaînestrim
: supprime les espaces ou un autre caractère
en début (ltrim
) et fin de chaîne (rtrim
)substr
: retourne une sous-chaînestrpos
: cherche la position d'une sous-chaîne dans une autre chaînenl2br
: remplace \n
en <br>
ucfirst
: première lettre en majusculeucwords
: première lettre de chaque mot en majusculestr_replace
, strtolower
, strtoupper
, implode
, explode
sur : http://php.net/manual/en/ref.strings.php<?php
var_dump("0");
var_dump("0" + 2);
var_dump("0" + 1.3);
var_dump("0" + true);
?>
array()
([]
autorisé depuis PHP 5.4)clé => valeur
count
: retourne le nombre d'éléments contenus dans un tableausort
: trie par rapport aux valeurs un tableau (rsort
reverse)asort
: trie les valeurs en conservant les clés (arsort
reverse)ksort
: trie les clés d'un tableau (krsort
reverse)array_keys
: retourne les clés d'un tableau sous forme d'un tableauarray_values
: retourne les valeurs d'un tableau sous forme d'un tableauarray_pop
, array_shift
, array_map
sur : http://php.net/manual/en/function.array.php<?php
var_dump(array("a","b","c"));
var_dump(array("a" => "b", 3 => "c"));
var_dump(array("a", 3 => "b", "c"));
?>
$
_
suivi de lettres, de chiffres ou _
$this
est une variable spéciale qui ne peut pas être modifiéegettype()
permet d'obtenir une chaîne de caractères
correspondant au type de l'argument : boolean
, integer
,
double
, string
, array
, object
, resource
, NULL
ou
unknown type
.is_array()
, is_bool()
,
is_float()
, is_int()
, is_null()
, is_numeric()
,
is_object()
, is_resource()
, is_scalar()
(integer, float,
string and booleen), is_string()
permettent de vérifier si un
argument est d'un type particulier.empty()
is_null()
isset()
(bool)
empty() !== (bool)
is_null() !== isset()
'php' == 0 => true
0 == null => true
null == 'php' => false
define
est utilisée<?php
define('HELLO', 3);
$a = 'hello';
$$a = 'world';
var_dump(HELLO);
//var_dump('$a $hello HELLO');
//var_dump("$a $hello $$a HELLO");
?>
-$a
: la négation$a + $b
: l'addition$a - $b
: la soustraction$a * $b
: la multiplication$a / $b
: la division$a % $b
: le modulo$a ** $b
: l'exponentielle (PHP 5.6) =
=
avec d'autres opérateurs &
*
du C n'a pas de signification en PHP<?php
$a = 3;
$b = &$a;
$a += 4;
var_dump($a);
var_dump($b);
?>
$a == $b
: égalité des valeurs$a === $b
: identité (égalité des valeurs et des types)$a != $b
: différence$a <> $b
: différence$a !== $b
: non identité (différence des valeurs ou des types)$a < $b
: infériorité$a > $b
: supériorité$a <= $b
: infériorité ou égalité$a >= $b
: supériorité ou égalité++$a
: incrémente $a
de 1, puis retourne $a
$a++
: retourne $a
puis incrémente $a
de 1--$a
: décrémente $a
de 1, puis retourne $a
$a--
: retourne $a
puis décrémente $a
de 1<?php
$a = 3;
var_dump($a++);
//var_dump($a);
//var_dump(--$a);
//var_dump($a);
?>
?:
est un opérateur conditionnel ternaire(expr1) ? (expr2) : (expr3)
est évalué à :
expr2
si expr1
est évaluée à true
expr3
si expr1
est évaluée à false
expr2
n'est plus obligatoire depuis PHP 5.3<?php
var_dump('1' == 1 ? 'oui' : 'non');
var_dump('1' === 1 ? 'oui' : 'non');
?>
$a && $b
: true
si $a
et $b
valent true
$a and $b
: true
si $a
et $b
valent true
$a || $b
: true
si $a
vaut true
ou $b
vaut true
$a or $b
: true
si $a
vaut true
ou $b
vaut true
$a xor $b
: true
si $a
vaut true
ou $b
vaut true
mais pas les 2!$a
: true
si $a
ne vaut pas true
.
correspond à l'opération de concaténation pour les chaînes de caractères[index]
permet d'accéder à un élément particulier d'un tableau[]
permet assigner une valeur à la fin d'un tableau<?php
$a = "hello ";
$b = array($a);
$b[] = "world";
var_dump($a[4]);
var_dump($a.$b[1]);
?>
if (condition) {
instructions; // si condition évaluée à true
}
if (condition) {
instructions; // si condition évaluée à true
} else {
instructions; // si condition évaluée à false
}
if (condition1) {
instructions; // si condition1 évaluée à true
} elseif (condition2) {
instructions; // si condition1 évaluée à false et condition2 évaluée à true
} else {
instructions; // si condition1 et condition 2 évaluées à false
}
switch ($i) {
case 0:
echo "i equals 0";
break;
case 'a':
echo "i equals a";
break;
default:
echo "aucune valeur correspondante";
}
// == pas ===
if ($i == 0) {
echo "i equals 0";
} elseif ($i == 'a') {
echo "i equals a";
} else {
echo "aucune valeur correspondante";
}
while (condition) {
instructions; // tant que condition est évaluée à true
}
do {
instructions; // tant que condition est évaluée à true
} while (condition);
for (expr1; expr2; expr3) { // expr1 est exécutée une seule fois au début de la boucle
instructions; // exécuté tant que expr2 est évaluée à true
// expr3 est exécutée à la fin de chaque itération
}
expr1;
while (expr2) {
instructions;
expr3;
}
foreach
permet de parcourir les éléments d'un tableauforeach ($array as $value) {
instructions;
}
foreach ($array as $key => $value) {
instructions;
}
<?php
$i = 0;
$values = array();
while (count($values) < 10) {
$values[] = $i++;
}
$output = "values :";
foreach($values as $value) {
if ($value % 2) {
$output .= ' ' . $value;
}
}
echo $output;
?>
<?php
function helloWorld() {
echo "Hello world!";
}
helloWorld();
?>
<?php
function helloWorld($hello, $world) {
echo "$hello $world!<br>\n";
}
helloWorld('Hello', 'world');
helloWorld('Bonjour', 'tous');
?>
<?php
function helloWorld($hello, $world = 'world') {
echo "$hello $world!\n";
}
helloWorld('Bonjour', 'tous');
helloWorld('Hello');
?>
return
est absent, null
est retourné<?php
function helloWorld() {
return "Hello world!";
}
var_dump(helloWorld());
?>
<?php
function helloWorld() {
$result = array();
$result[] = "Hello";
$result[] = "world!";
return $result;
}
echo implode(" ", helloWorld());
?>
<?php
$hello = "Hello";
$world = "World";
function helloWorld($bonjour, &$tous) {
$bonjour = "Bonjour";
$tous = "tous";
}
helloWorld($hello, $world);
echo $hello." ".$world;
?>
<?php
// affiche n fois la lettre 'o'
function o($n) {
$res = '';
if ($n > 0) {
$res = 'o'.o($n -1);
}
return $res;
}
function helloWorld($n = 1) {
echo 'Hell'.o($n)." world!\n";
}
helloWorld();
helloWorld(10);
?>
$_GET
: variables de la méthode GET (dans l'url)$_POST
: variables de la méthode POST (dans l'entête HTTP)$_REQUEST
: contenu de $_GET
, $_POST
($_COOKIE
: PHP < 5.3)$_FILES
: gestion des fichiers uploadés$_COOKIE
: variables des cookies HTTP (stockées chez le client)$_SESSION
: variables de session (stockées sur le serveur)$_SERVER
: variables de serveur et d'exécution$GLOBALS
: variables disponibles dans le contexte global (à éviter)$argc
: nombre d'arguments passés au script (CLI
)$argv
: tableau avec les arguments passés au script (CLI
)$_SERVER
$_SERVER['DOCUMENT_ROOT'] |
Racine du serveur |
$_SERVER['HTTP_ACCEPT_LANGUAGE'] |
Langage accepté par le navigateur |
$_SERVER['HTTP_HOST'] |
Nom de domaine du serveur |
$_SERVER['HTTP_USER_AGENT'] |
Type de navigateur |
$_SERVER['PATH_INFO'] |
Chemin WEB du script |
$_SERVER['REQUEST_URI'] |
Chemin du script |
$_SERVER['REMOTE_ADDR'] |
Adresse IP du client |
$_SERVER['REMOTE_PORT'] |
Port de la requête HTTP |
$_SERVER['QUERY_STRING'] |
Liste des paramètres passés au script |
$_SERVER['SERVER_ADDR'] |
Adresse IP du serveur |
GET form
<form action="<?php echo($_SERVER["PHP_SELF"]); ?>" method="get">
<label>input :<input type="text" name="input"/></label><br>
<button type="submit">Valider</button>
</form>
$_SERVER["PHP_SELF"]
$_SERVER["PHP_SELF"]
$_SERVER["PHP_SELF"]
permet de faire référence au script en cours
Problème
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Solution
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
htmlspecialchars($_SERVER["PHP_SELF"]);
ou filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING);
action=""
$_SERVER['PHP_SELF']
Never Trust User Input
Solution
htmlspecialchars()
$data = "javascript:alert('hacked');";
<img src="'.htmlspecialchars($data).'">
<img src="javascript:alert('hacked');">
POST form
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<label>input :<input type="text" name="input"/></label><br>
<button type="submit">Valider</button>
</form>
Multiple POST form
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<p>
Langues pratiquées :<br />
<select name="lang[]" multiple size="4">
<option value="français"> français</option>
<option value="anglais"> anglais</option>
<option value="allemand"> allemand</option>
<option value="espagnol"> espagnol</option>
</select>
</p>
<p>
Compétences informatiques :<br />
<label>HTML<input type="checkbox" name="input[]" value="HTML" /></label>
<label>PHP<input type="checkbox" name="input[]" value="PHP" /></label>
<label>MySQL<input type="checkbox" name="input[]" value="MySQL" /></label>
</p>
<input type="reset" value="EFFACER"/>
<input type="submit" value="ENVOI"/>
</form>
Multiple button
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="get">
<input type="submit" name="input" value="addition">
<input type="submit" name="input" value="soustraction">
<input type="submit" name="input" value="multiplication">
<input type="submit" name="input" value="division">
</form>
$_FILES
POST
)enctype="multipart/form-data"
<input type="file" accept="image/jpg">
upload_max_filesize
du fichier php.ini
<input type="hidden" name="MAX_FILE_SIZE" value="120000">
en octetsname
: nom du fichier clienttype
: MIME du fichier clienttmp_name
: nom temporaire du fichier transféréerror
: code d'erreur associé au fichiersize
: taille du fichier transféré 0 |
UPLOAD_ERR_OK |
transfert réalisé avec succès |
1 |
UPLOAD_ERR_INI_SIZE |
taille du fichier trop grande (php.ini ) |
2 |
UPLOAD_ERR_FORM_SIZE |
taille du fichier trop grande (MAX_FILE_SIZE ) |
3 |
UPLOAD_ERR_PARTIAL |
fichier partiellement transféré |
4 |
UPLOAD_ERR_NOFILE |
aucun fichier transféré |
POST form with file
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"
method="post" enctype="multipart/form-data">
<label>input :<input type="text" name="input"/></label><br>
<label>file :<input type="file" name="file"/></label><br>
<button type="submit">Valider</button>
</form>
POST form with files
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"
method="post" enctype="multipart/form-data">
<label>input :<input type="text" name="input"/></label><br>
<label>file[] :<input type="file" name="files[]"/></label><br>
<label>file[] :<input type="file" name="files[]"/></label><br>
<button type="submit">Valider</button>
</form>
move_uploaded_file
move_uploaded_file($_FILES["file"]["tmp_name"], "monimage.jpg");
filter_var($email, FILTER_VALIDATE_EMAIL)
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
$name |
(obligatoire) | nom du cookie |
$value |
(facultatif) | valeur du cookie (chaîne de caractères) |
$expire |
(facultatif : 0) | date de fin de validité du cookie |
$path |
(facultatif) | chemin pour limiter l'accès au cookie |
$domain |
(facultatif) | domaine pour limiter l'accès au cookie |
$secure |
(facultatif : false) | HTTPS pour transmettre les cookies |
$httponly |
(facultatif : false) | utilisation uniquement du protocole HTTP |
setcookie('hello','world');
setcookie('couleur', 'red', time()+86400, '/mon-compte/', www.monsite.com, TRUE);
setcookie('tableau[index1]','val1');
setcookie('tableau[index2]','val2');
setcookie('tableau[index3]','val3');
$_COOKIE
est utilisé pour récupérer les valeurssetcookie('hello','world');
setcookie('tableau[index1]','val1');
setcookie('tableau[index2]','val2');
setcookie('tableau[index3]','val3');
(Lisez bien les notes avant de cliquer sur ce lien d'exemple)
session_start()
$_SESSION
SID
(Pas recommandé)ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
par défaut depuis PHP 5.3session_login.php
<?php
session_start();
if(isset($_POST["login"]) && isset($_POST["pass"])) {
if($_POST["login"]=="login" && $_POST["pass"]=="pass") {
session_regenerate_id(true);
$_SESSION["acces"] = true;
$_SESSION["nom"] = $_POST["login"];
}
} else {
if (isset($_GET["logout"])) {
session_unset();
session_destroy();
header("Location:session.php");
}
}
?>
session_form.php
<form method="post" action="">
<fieldset>
<legend>Accès réservé aux personnes autorisées: Identifiez vous !
</legend>
Login : <input type="text" name="login">
Pass : <input type="password" name="pass" />
<input type="submit" name="envoi" value="Entrer"/>
</fieldset>
</form>
session_menu.php
<p> Visiter les pages du site <br />
<ul>
<li><a href="session.php">Page d'accueil</a></li>
<li>
<a href="session_public.php">Page publique</a>
<?php if(isset($_SESSION["public"])) echo " vue ". $_SESSION["public"]. " fois"; ?>
</li>
<li>
<a href="session_protected.php">Page protégée </a>
<?php if(isset($_SESSION["protected"])) echo " vue ". $_SESSION["protected"]." fois"; ?>
</li>
<?php if (isset($_SESSION["acces"])) { ?>
<li><a href="session.php?logout">Logout</a></li>
<?php } ?>
</ul>
session_info.php
<p>
<?php
echo "Nom de la session : ", session_name(),"<br>\n";
echo "Id de la session : ", session_id(),"<br>\n";
?>
</p>
session_public.php
<?php
session_start();
$_SESSION["public"] ++;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>La page publique</title>
</head>
<body>
<p>
<a href="session.php">Page d'accueil</a><br>
<?php echo "Page publique vue ". $_SESSION["public"]. " fois"; ?>
</p>
</body>
</html>
session_protected.php
<?php
session_start();
if(!isset($_SESSION["acces"])) {
header("Location:session.php");
} else {
$_SESSION["protected"] ++;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>La page protégée</title>
</head>
<body>
<p>
<a href="session.php">Page d'accueil</a><br>
<?php echo "Page protégée vue ". $_SESSION["protected"]. " fois"; ?><br>
<?php echo "<h4>Bonjour ". $_SESSION["nom"]."</h4>"; ?>
<a href="session.php?logout">Logout</a>
</p>
</body>
</html>
include('fichier.ext');
require('fichier.ext');
include_once('fichier.ext');
require_once('fichier.ext');
include
et require
concerne la gestion des erreurs
include
génère un avertissementrequire
génère une erreur fatale_once
permet de ne remplacer qu'une seule fois le code.php
pour protéger le contenufile_exists()
permet de vérifier l'existence d'un fichierfile_get_contents()
permet de lire le contenu d'un fichierfile_put_contents()
permet d'écrire dans un fichier<?php
$file = "file.txt";
$content = "";
if (file_exists($file)) {
$content = file_get_contents($file);
}
$content .= "Hello world\n";
file_put_contents($file, $content);
?>
fopen ouvre un fichier
resource fopen ( string $filename , string $mode)
$mode
:
'r'
: lecture seule 'r+'
: lecture et écriture 'w'
: écriture seule (création du fichier si inexistant) 'w+'
: lecture et écriture (création du fichier si inexistant) 'a'
: écriture seule comme w
(écriture en fin de fichier) 'a+'
: écriture et lecture comme w+
(écriture en fin de fichier)<?php
// Équivalent de file_get_contents
$file = "file.txt";
$handle = fopen($filename, "r");
if ($handle) {
$content = fread($handle, filesize($file));
fclose($handle);
}
?>
flock vérrouille un fichier
bool flock ( resource $handle , int $operation )
$operation
:
LOCK_SH
bloque l'écriture du fichier mais laisse le libre accès en lecture à tous les utilisateursLOCK_EX
bloque l'écriture et la lecture du fichierLOCK_UN
libère le verrou installé précédemment (ne pas oublier cette fonction à la fin des opérations de lecture et écriture)fgetcsv retourne sous forme de tableau un fichier CSV
array fgetcsv ( resource $handle
[, int $length = 0
[, string $delimiter = ","
[, string $enclosure = '"'
[, string $escape = "\\" ]]]] )
fputcsv écrit une ligne CSV dans un fichier
int fputcsv ( resource $handle ,
array $fields
[, string $delimiter = ","
[, string $enclosure = '"' ]] )
filesize récupère la taille du fichier
int filesize ( string $filename )
fileatime donne la date du dernier accès à un fichier
int fileatime ( string $filename )
filemtime donne la date de dernière modification d'un fichier
int filemtime ( string $filename )
realpath retourne le chemin absolu d'un chemin
string realpath ( string $path )
basename retourne le nom du fichier d'un chemin
string basename ( string $path [, string $suffix ] )
AUTOINCREMENT
, AUTO_INCREMENT
)<?php
// mysqli
$mysqli = new mysqli('example.com', 'user', 'password', 'database');
$result = $mysqli->query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);
// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Bonjour, cher utilisateur de MySQL !' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);
?>
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
?>
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
try {
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
<?php
try {
// ouverture de la base de données
$pdo = new PDO("sqlite::memory:");
echo "Connecté à la base de données";
// fermeture de la base de données
$pdo = null;
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
exec execute une requête SQL et retourne le nombre de lignes affectées
public int PDO::exec ( string $statement )
query execute une requête SQL et retourne un objet PDOStatement
public PDOStatement PDO::query ( string $statement )
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
$error = isset($_GET["error"])?$_GET["error"]:"default";
try {
$pdo = new PDO("sqlite::memory:");
switch($error) {
case "exception":
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
break;
case "warning":
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
break;
case "silent":
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
break;
}
var_dump($pdo->exec("Hello world"));
echo "<br>Code erreur : ".$pdo->errorCode()."<br>";
$pdo = null;
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
pdo_create.php
<?php
error_reporting(E_ALL);
ini_set("display_errors", "1");
try {
$pdo = new PDO("sqlite::memory:");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$table = "CREATE TABLE animals (
animal_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
animal_type VARCHAR(25) NOT NULL,
animal_name VARCHAR(25) NOT NULL
)";
$pdo->exec($table);
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
pdo_insert.php
<?php
include "pdo_create.php";
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('chien', 'médor')");
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('vache', 'marguerite')");
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('souris', 'jerry')");
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('oiseau', 'titi')");
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('chat', 'minou')");
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('poisson', 'némo')");
$pdo->exec("INSERT INTO animals (animal_type, animal_name) VALUES ('lapin', 'jeannot')");
echo "id du dernier animal inséré : ".$pdo->lastInsertId()."<br>\n";
?>
<?php
include "pdo_insert.php";
$sql = "SELECT * FROM animals";
foreach ($pdo->query($sql) as $row) {
print $row["animal_type"] ." - ". $row["animal_name"] . "<br />";
}
?>
<?php
include "pdo_insert.php";
$sql = "SELECT * FROM animals";
$stmt = $pdo->query($sql);
echo "<br><b>PDO::FETCH_ASSOC</b><br>\n";
var_dump($stmt->fetch(PDO::FETCH_ASSOC));
echo "<br><b>PDO::FETCH_NUM</b><br>\n";
var_dump($stmt->fetch(PDO::FETCH_NUM));
echo "<br><b>PDO::FETCH_BOTH</b><br>\n";
var_dump($stmt->fetch(PDO::FETCH_BOTH));
echo "<br><b>fetchAll</b><br>\n";
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
?>
<?php
include "pdo_insert.php";
$count = $pdo->exec("UPDATE animals SET animal_name='mickey' WHERE animal_name='jerry'");
echo $count." animaux mis à jour<br>";
var_dump($pdo->query("SELECT * FROM animals")->fetchAll(PDO::FETCH_ASSOC));
?>
<?php
include "pdo_insert.php";
$count = $pdo->exec("DELETE FROM animals
WHERE animal_name = 'médor' OR animal_name = 'titi'");
echo $count." animaux supprimés<br>";
var_dump($pdo->query("SELECT * FROM animals")->fetchAll(PDO::FETCH_ASSOC));
?>
<?php
include "pdo_insert.php";
// préparation d'une déclaration SQL
$stmt = $pdo->prepare("SELECT * FROM animals
WHERE animal_name = :animal_name");
// déclaration d'une variable
$animal_name = "minou";
// lien entre la déclaration SQL et la variable
$stmt->bindParam(":animal_name", $animal_name);
// exécution de la requête et affichage des résultats
$stmt->execute();
var_dump($stmt->fetchAll());
// modification des paramètres
$animal_name = "titi";
$stmt->execute();
var_dump($stmt->fetchAll());
?>
<?php
include "pdo_insert.php";
// Création d'un objet PDOStatement
$stmt = $pdo->prepare("SELECT animal_id FROM animals");
// Création d'un second objet PDOStatement
$otherStmt = $pdo->prepare("SELECT animal_name FROM animals");
// Exécute la première requête
$stmt->execute();
// Récupération de la première ligne uniquement depuis le résultat
var_dump($stmt->fetch());
// L'appel suivant à closeCursor() peut être requis par quelques drivers
$stmt->closeCursor();
// Maintenant, nous pouvons exécuter la deuxième requête
$otherStmt->execute();
// Récupération de la première ligne uniquement depuis le résultat
var_dump($otherStmt->fetch());
?>