2011-11-04 63 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變量內的索引周圍的大括號。如果你想把一個索引放在超全局內,那麼最好使用大括號。否則,按照其他人的建議使用連接。