76 votes

Comment inclure une variable PHP dans une instruction MySQL

J'essaie d'insérer des valeurs dans la table des matières. Cela fonctionne bien si je n'ai pas de variable PHP dans VALUES. Lorsque je mets la variable $type intérieur de VALUES cela ne fonctionne pas. Qu'est-ce que je fais mal?

 $type = 'testing';
mysql_query("INSERT INTO contents (type, reporter, description) 
     VALUES($type, 'john', 'whatever')");

10voto

Stefan Points 187

Pour éviter l'injection SQL, l'instruction insert avec be

 $type = 'testing';
$name = 'john';
$description = 'whatever';

$con = new mysqli($user, $pass, $db);
$stmt = $con->prepare("INSERT INTO contents (type, reporter, description) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $type , $name, $description);
$stmt->execute();

1voto

Baloomba Points 41

C'est la réponse facile :

 $query="SELECT * FROM CountryInfo WHERE Name = '".$name."'";

et vous définissez $name ce que vous voulez. Et une autre manière, la manière complexe, c'est comme ça :

 $query = " SELECT '" . $GLOBALS['Name'] . "' .* " .
         " FROM CountryInfo " .
         " INNER JOIN District " .
         " ON District.CountryInfoId = CountryInfo.CountryInfoId " .
         " INNER JOIN City " .
         " ON City.DistrictId = District.DistrictId " .
         " INNER JOIN '" . $GLOBALS['Name'] . "' " .
         " ON '" . $GLOBALS['Name'] . "'.CityId = City.CityId " .
         " WHERE CountryInfo.Name = '" . $GLOBALS['CountryName'] .
         "'";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X