2011-11-04 30 views
5

Tôi đang sử dụng các tuyên bố sau, nhưng không chắc chắn làm thế nào để có được $variables bên trong báo cáo kết quả đúng:Sử dụng các biến php bên tuyên bố chèn MySQL

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

thử sử dụng tính năng kết hợp ... nhưng bạn nên lọc đầu vào 'mysql_real_escape_string' hoặc PDO http://php.net/manual/en/book.pdo.php – kjy112

+0

Sử dụng truy vấn được tham số hóa. – aib

+0

bản sao có thể có của [Cách bao gồm biến PHP bên trong câu lệnh chèn mysql] (http://stackoverflow.com/questions/7537377/how-to-include-a-php-variable-inside-a-mysql-insert- tuyên bố) –

Trả lời

8

Chỉ cần thay đổi mới nhất:

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

Khi sử dụng một kiểu mảng trong một chuỗi (các dấu ngoặc kép "" có nghĩa là php sẽ phân tích chuỗi), bạn phải kèm theo giá trị mà bạn muốn sử dụng trong dấu ngoặc móc, tức là

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

Wel-explain .... Cảm ơn bạn – Anjuman

0

Sử dụng nó như thế này:

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

Điều này là không cần thiết ngoài biến cuối cùng, mặc dù –

1

mặc dù câu hỏi theo nghĩa đen được trả lời trong các liên kết trong các ý kiến, vấn đề thực bạn phải đối mặt với không có gì để làm với SQL nhưng với cú pháp chuỗi PHP. Vì vậy, đây là liên kết để bạn tham khảo: http://php.net/types.string

Trang này là một trong những điều quan trọng nhất bạn phải biết về PHP.
Bạn nên nghiên cứu kỹ lưỡng, hoặc bạn sẽ không thể sử dụng PHP cho ngay cả những công việc đơn giản nhất như thế này.

+0

Cảm ơn, tôi biết điều này là quá đơn giản của một câu hỏi, tôi đã chỉ trong một pinch nhanh chóng. Tôi sẽ đọc thêm về nội dung này nhiều hơn. – stewart715

0

cách an toàn nhất để làm những gì bạn muốn là thay vì điều này:

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

làm điều này:

$ query = "INSERT INTO thuê bao (email, referral_id, user_id, ip_address) VALUES (' $ user_email ',' $ user_refer ',' $ user_share ',' {$ _SERVER ['REMOTE_ADDR']} ') "

Lưu ý dấu ngoặc nhọn quanh chỉ mục bên trong biến $ _SERVER. Nếu bạn muốn kèm theo một chỉ mục bên trong một superglobal, thì tốt nhất là sử dụng các dấu ngoặc nhọn. nếu không, sử dụng nối như đề xuất của người khác.

Các vấn đề liên quan