manière concise pour vérifier la présence variable dans MySQL INSERT IGNORE QUERY en utilisant PHP

voix
0

Je suis en train d'écrire un script PHP pour ajouter des éléments à un panier. Mon panier table de panier a des champs pour l'ID utilisateur, ID produit, l'identifiant de session, des notes et quelques autres. Certains des champs peuvent être vides. Par exemple:

si quelqu'un est pas connecté, alors je vais stocker leur identifiant de session dans la table et, si elles signent, ajoutez leur userid donc j'ai un moyen permanant pour faire correspondre les éléments du tableau à l'utilisateur. Si elles sont, je vais ajouter le code d'utilisateur. Quand il vient à la puis-je faire INSERT IGNORE requête, quelque chose comme ceci:

$ Add_sql = INSERT IGNORE dans sessionBasket (userid) VALUES ( ' isset ($ _ SESSION [ userid]) $ _SESSION [ userid].? ). ';

Il me sauverait beaucoup de temps sur la vérification et de branchement variables parce que les gens pourraient être signés ou non, les éléments pourraient avoir des notes ou non, ce genre de chose.

Créé 27/08/2009 à 00:04
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Aïe! Injection SQL! vous risquez de perdre votre base de données entière

Vous devriez regarder les instructions préparées pour votre insertion sql.

Vous devez utiliser l'interface mysqli, mais il va comme ceci:

$statement = $db_connection->prepare("insert into ... VALUES(?)");
$statement->bind_param("id", $sid);
$statement->execute();

Cela permettra d'éviter des attaques par injection SQL.

Au strict minimum, vous devriez au moins échapper à la chaîne.

$sid = isset($_SESSION[userid]) ? mysql_real_escape_string($_SESSION[userid])) : '';
$add_sql = "insert into ... values($sid)";
Créé 27/08/2009 à 00:12
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more