Forum

You are not logged in.

#1 03-08-2017 14:41:07

thommysannu
Membre
Registered: 27-07-2017
Posts: 2

Mysql est les apostrophes.

Bonjour,

Voila j'ai un souci avec les apostrophes lorsque je veux faire un UPDATE avec php de ma base de données.

Voici le code :
<?php
session_start();

if (isset($_SESSION['id'])) {
   header('Location: ../index.php');
   
    exit;
}
$cnx = mysql_connect( "", "", "" ) ;
$db = mysql_select_db( "" ) ;
   
  $login            = $_POST["login"] ;
  $nom_site            = $_POST["nom_site"] ;
  $url                = $_POST["url"] ;
  $banniere            = $_POST["banniere"] ;
  $backlink            = $_POST["backlink"] ;
   $rubrique        = $_POST["rubrique"] ;
   $mc1                = $_POST["mc1"] ;
   $mc2                = $_POST["mc2"] ;
   $mc3                = $_POST["mc3"] ;
   $mc4                = $_POST["mc4"] ;
   $mc5               = $_POST["mc5"] ;
   $mc6                = $_POST["mc6"] ;
   $mc7               = $_POST["mc7"] ;
   $mc8                = $_POST["mc8"] ;
   $mc9                = $_POST["mc9"] ;
   $mc10            = $_POST["mc10"] ;
   $email            = $_POST["email"] ;
   $descriptif        = $_POST["descriptif"] ;
  $id                = $_POST["id"] ;
  //création de la requête SQL:
$sql ="mysql_real_escape_string() ";

$sql = "UPDATE utilisateurs
            SET
login               = '$login',
nom_site            = '$nom_site',
url                 = '$url',
banniere            = '$banniere',
backlink            = '$backlink',
rubrique            = '$rubrique',
mc1                = '$mc1',
mc2                 = '$mc2',
mc3                 = '$mc3',
mc4                 = '$mc4',
mc5                 = '$mc5',
mc6                 = '$mc6',
mc7                 = '$mc7',
mc8                 = '$mc8',
mc9                 = '$mc9',
mc10                = '$mc10',
email                = '$email',
descriptif               = '$descriptif'



WHERE id = '$id' " ;


  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;


  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>

Et voici ce que me retourne la page web :

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'un fichier Excel (programme indispensable pour utiliser cette version) qui regro' at line 20

Est-ce que quelqu'un aurait une idée comment échapper les apostrophes ?
Merci pour vos réponses.

Offline

#2 14-08-2017 21:25:19

Tournikoti
Membre
Registered: 20-03-2013
Posts: 193

Re: Mysql est les apostrophes.

Salut thommysannu.

Mettez votre code php dans la balise [ code ] ... [ /code ].

Mysql est obsolète depuis fort longtemps. Vous pouvez utiliser à la place mysqli.

thommysannu wrote:

Est-ce que quelqu'un aurait une idée comment échapper les apostrophes ?

Il y a quatre façons de gérer ces apostrophes.

1) mettre un anti-slash devant le caractère qui pose problème : \'.

2) ou doublez ce caractère : ''.

Les deux premières astuces sont pour des chaînes de caractères que l'on construit, mais ne peuvent pas convenir si elles viennent d'ailleurs.

3) soit par exemple, la chaîne de caractères suivante : "Une chaîne contenant l'apostrophe".
Il faut dans ce cas utiliser la fonction : mysqli_real_escape_string().
--> http://php.net/manual/fr/mysqli.real-escape-string.php

$sql = mysqli_real_escape_string($link, $sql);

4) ne pas utiliser mysqli mais plutôt PDO qui gère d'une manière transparente les caractères spéciaux.

@+

Offline

Board footer

Powered by FluxBB