À l'aide de variables php à l'intérieur de MySQL instruction insert
Je suis à l'aide de l'instruction suivante, mais vous ne savez pas comment obtenir le $variables
à l'intérieur de l'énoncé correctement:
mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address)
VALUES ('$user_email', '$user_refer', '$user_share', '$_SERVER['REMOTE_ADDR']')");
- essayez d'utiliser concatination...mais vous devriez filtre à l'entrée de la première
mysql_real_escape_string
ou PDO php.net/manual/en/book.pdo.php - Utiliser des requêtes paramétrées.
- double possible de Comment inclure une variable PHP à l'intérieur d'une base mysql insert
Vous devez vous connecter pour publier un commentaire.
Il suffit de changer la dernière:
Lors de l'utilisation d'un type de tableau dans une chaîne de caractères (les guillemets "" signifie php va analyser cette chaîne), vous devez mettre la valeur que vous souhaitez utiliser dans les accolades, c'est à dire
bien que littérale question est posée dans le lien dans les commentaires, le réel problème que vous rencontrez n'a rien à voir avec SQL mais avec PHP syntaxe de la chaîne. Donc, voici un lien pour votre référence: http://php.net/types.string
Cette page est parmi les choses les plus importantes que vous devez savoir à propos de PHP.
Vous devez étudier avec diligence, ou vous ne pourrez pas utiliser PHP pour encore plus de tâches simples, comme celui-ci.
L'utiliser comme ceci:
Vous devriez le faire un peu différemment. Utiliser
Vous pouvez également consulter la rubrique une commande sql pourquoi, il affiche une erreur?
C'est un peu différent par rapport à ce que vous faites maintenant, mais beaucoup plus sûr.
Façon la plus sûre de faire ce que vous voulez, c'est plutôt de ceci:
ce faire:
$query = "INSERT INTO abonnés (email, referral_id, user_id, adresse_ip)
VALUES ('$user_email', '$user_refer', '$user_share', '{$_SERVER['REMOTE_ADDR']}')"
Note les accolades autour de l'index à l'intérieur de la valeur de $_SERVER variable. Si vous souhaitez joindre un index à l'intérieur d'une superglobale, alors il est préférable d'utiliser des accolades. sinon, utiliser la concaténation comme suggéré par d'autres.