2011-11-04 64 views
5

我用下面的语句,但不知道如何得到正确的语句内$variables使用MySQL的INSERT语句中的PHP变量

mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address) 
      VALUES ('$user_email', '$user_refer', '$user_share', '$_SERVER['REMOTE_ADDR']')"); 
+0

尝试使用concatination ...但您应该先过滤输入mysql_real_escape_string或PDO http://php.net/manual/en/book.pdo.php – kjy112

+0

使用参数化查询。 – aib

+0

[如何在mysql插入语句中包含PHP变量]的可能重复(http://stackoverflow.com/questions/7537377/how-to-include-a-php-variable-inside-a-mysql-insert-声明) –

回答

8

只需更改最后一个:

mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address) 
VALUES ('$user_email', '$user_refer', '$user_share', '".$_SERVER['REMOTE_ADDR']."')"); 
6

当在字符串中使用数组类型(双引号“”意思是PHP的是要分析该字符串),你必须附上你想在大括号使用的值,即

mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address) 
     VALUES ('$user_email', '$user_refer', '$user_share', '{$_SERVER['REMOTE_ADDR']}')"); 
+0

Wel解释....谢谢 – Anjuman

0

使用方法如下:

mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address) 
      VALUES ('".$user_email."'… 
+0

这是没有必要除了最后一个变量,虽然 –

1

虽然字面的问题是在链路回答的意见,你面对的现实问题无关与SQL但是用PHP字符串语法。所以,这里有一个供你参考的链接:http://php.net/types.string

这个页面是你必须了解的关于PHP的最重要的事情。
你应该认真研究它,否则即使是像这样的最简单的任务,你也无法使用PHP。

+0

谢谢,我知道这太简单的一个问题,我只是在一个快速捏。我会更多地阅读这些东西。 – stewart715

0

做你想做什么最保险的办法是不是这样的:

mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address) 
     VALUES ('$user_email', '$user_refer', '$user_share', '$_SERVER['REMOTE_ADDR']')"); 

做到这一点:

$查询=“INSERT INTO用户(电子邮件,referral_id,USER_ID,IP_ADDRESS) VALUES(” $ user_email','$ user_refer','$ user_share','{$ _SERVER ['REMOTE_ADDR']}')“

请注意$ _SERVER变量内的索引周围的大括号。如果你想把一个索引放在超全局内,那么最好使用大括号。否则,按照其他人的建议使用连接。