Possible en double:
Prevent Duplicate SQL entriesempêcher insertion sql double en php
Je suis à la recherche d'un moyen simple de me dire si un enregistrement existe déjà, et si elle le fait, ne pas l'insérer dans la table. Le code ci-dessous insère indépendamment du fait qu'il existe ou non ... et je ne peux pas comprendre pourquoi.
<?php
$FirstName = $_POST["FirstName"];
$LastName = $_POST["LastName"];
$conn = sqlsrv_connect($hostname, $connectionInfo)
$dup = sqlsrv_query($conn, "SELECT * FROM contact WHERE (FirstName='$FirstName') AND (LastName='$LastName')");
if(sqlsrv_num_rows($dup) > 0)
{
echo "Already Exists";
}
else
{
$query = "INSERT INTO contact (FirstName, LastName) VALUES ('$FirstName', '$LastName')";
sqlsrv_query($conn, $query);
}
EDIT:
En fin de compte, le changement sqlsrv_num_rows($dup) > 0
-sqlsrv_has_rows($dup)
a résolu le problème. Voici mon code mis à jour:
$params = array($_POST['FirstName'], $_POST['LastName']);
$conn = sqlsrv_connect($hostname, $connectionInfo)
$sql = "SELECT * FROM contact WHERE FirstName = ? AND LastName = ?";
$dup = sqlsrv_query($conn, $sql, $params);
if(sqlsrv_has_rows($dup))
{
echo "Already Exists";
}
else
{
$query = "INSERT INTO contact (FirstName, LastName) VALUES (?, ?)";
sqlsrv_query($conn, $query, $params);
}
Essayez 'SELECT * FROM contact WHERE Prénom = '$ Prénom' AND Nom = '$ Nom' pour la vérification. –