OVH Community, votre nouvel espace communautaire.

Last_insert_id()


ThierrySedbon
05/04/2010, 16h04
J'ai un problème sur le serveur OVH avec l'instruction LAST_INSERT_ID() et mysql_insert_id()
J'ai une application très simple qui fonctionne très bien en local (Serveur PHP/SQL/Apache WAMPSERVER)

Un questionnaire de quelque ligne rajoute un enregistrement dans une base de données SQL,

Puis une page PHP vient lire le dernier enregistrement grâce à l'instruction LAST_INSERT_ID.

Le premier script rajoute bien un enregistrement dans la base, mais le deuxième ne récupère pas toujours la bonne valeur du LAST_INSERT_ID, aléatoirement je récupère la bonne valeur de ID, une autre valeur et le plus souvent rien du tout.

Vous pouvez le tester sur mon site à l'adresse http://www.sedbon.eu/QCM3/exemple7_Q.php pour le questionnaire qui vient remplir la base de donné (ceci fonctionne) et http://www.sedbon.eu/QCM3/exemple7_R.php pour la lecture de l'enregistrement.


Ces deux scripts sont très simples. J'ai passé plusieurs dizaine d'heures à chercher une solution. Je ne comprends pas pourquoi ces scripts fonctionnent très bien en local mais pas sur le serveur OVH. Pouvez-vous m'aider. Je vous en serais extrêmement reconnaissant, j'ai absolument besoin que cela fonctionne.

Je pense que le problème doit venir du Script de lecture que je mettrais dans la question suivante sur le forum du fait que nous somme limité à 10.000 caractère

Le Script exemple7_Q.php est ci-dessous:





if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO reponse (Commentaire, Q11a, Q11b, Q11c, Q11d, Q11e, Q11f, Q12a, Q12b, Q12c, Q12d, Q12e) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['Commentaire'], "text"),
GetSQLValueString(isset($_POST['Q11a']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q11b']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q11c']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q11d']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q11e']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q11f']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q12a']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q12b']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q12c']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q12d']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Q12e']) ? "true" : "", "defined","1","0"));

mysql_select_db($database_itproject, $itproject);
$Result1 = mysql_query($insertSQL, $itproject) or die(mysql_error());

$insertGoTo = "exemple7_R.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>



Document sans titre


Creation du Q



























































Une fois terminé, appuyez sur Envoyer












Le Script exemple7_R.php est ci-dessous

est posté sur la question suivante dans le même forum



Merci pour toute l'aide que vous pourrez m'apporter.

Cordialement.