Exemplo n.º 1
0
echo mysql_error().$req; 
	$req="insert into Discussion (sujet,intitule,auteur,dest) value ('$lapin','$intitule',$idAok,".$ids[0].");insert into Message value (null,'$intitule','$texte',LAST_INSERT_ID(),$auteur);COMMIT"; */
//pour rechercher l'id de l'insertion il faut savoir depuis quand l'insertion s'est faite
$req = "select now()";
$date = requete_champ_unique($req);
echo "{$req} " . mysql_error();
$req = "insert into `{$prefixe}Discussion` (sujet,intitule,auteur,dest) value ('{$lapin}','{$intitule}',{$idAok}," . $ids[0] . ")";
echo "{$req} ";
$res = requete($req);
if (mysql_errno()) {
    echec("{$res} erreur : " . mysql_error() . $req);
}
//puisqu'on ne peut garantir qu'il n'y a pas eu d'autre insertion entre les deux, LAST_INSERT_ID() ne peut être utilisée
//on recherche donc la discussion créée avec ces paramètres depuis quelques secondes;
$req = "select id_disc from `{$prefixe}Discussion` where sujet='{$lapin}' and intitule='{$intitule}' and auteur={$idAok} and dest=" . $ids[0] . " and date>='{$date}'";
echo "{$req} ";
$id_d = requete_champ_unique($req);
//Rq : il ne faut SURTOUT PAS tenter d'affecter un retour en comparant ave une valeur : $var=fonction()==null ne met pas le résultat de fonction dans var mais rien (pas même false ou true apparemment) !
if ($id_d == null) {
    echec("erreur : " . mysql_error() . $req);
}
echo $id_d;
$req = "insert into `{$prefixe}Message` value (null,'{$intitule}','{$texte}',NOW(), {$id_d}, {$auteur})";
//	$req=mysql_real_escape_string($req);
echo "{$req} ";
if (requete($req) == null) {
    echo "discussion lancée !";
} else {
    echec("erreur : " . mysql_error() . $req);
}
echo "fin";
Exemplo n.º 2
0
 * - PMA ne tient pas compte de la transaction, malgré le paramètre persistent, et commit de suite
 * - la ligne de commande pas mieux, que ce soit begin, start transaction ou set autocommit=0 !
 * 
 * il n'est donc pas possible de définir des transactions et des requêtes de source différentes peuvent interférer entre elles !
 *
 * mysql_query("SET AUTOCOMMIT=0");
 * 	$req=" BEGIN";
 *  */
//pour rechercher l'id de l'insertion il faut savoir depuis quand l'insertion s'est faite
$req = "select now()";
$date = requete_champ_unique($req);
$req = "insert into `{$prefixe}Discussion` (sujet,intitule,auteur,dest) value (" . $ids[1] . ",'{$intitule}',{$idAok}," . $ids[1] . ")";
$res = requete($req);
if (mysql_errno() > 0) {
    echec("{$res} erreur lors de la création de la discussion.");
}
//puisqu'on ne peut garantir qu'il n'y a pas eu d'autre insertion entre les deux, LAST_INSERT_ID() ne peut être utilisée
//on recherche donc la discussion créée avec ces paramètres depuis quelques secondes;
$req = "select id_disc from `{$prefixe}Discussion` where sujet='" . $ids[1] . "' and intitule='{$intitule}' and auteur={$idAok} and dest=" . $ids[1] . " and date>='{$date}'";
$id_d = requete_champ_unique($req);
//Rq : il ne faut SURTOUT PAS tenter d'affecter un retour en comparant ave une valeur : $var=fonction()==null ne met pas le résultat de fonction dans var mais rien (pas même false ou true apparemment) !
if ($id_d == null || trim($id_d) == "") {
    echec("erreur : discussion introuvable. Sans doute non créée.");
}
$req = "insert into `{$prefixe}Message` value (null,'{$intitule}','{$texte}',NOW(), {$id_d}, {$auteur})";
requete($req);
if (mysql_errno() == 0) {
    header("Location: ../../index.php?page=messagerie");
} else {
    echec("erreur lors de la création du message d'ouverture.");
}