2017-04-07 4 views
0

같은 $ _POST 방법의 사용은 내가 함수에 삽입 MySQL의에서 이것을 어떻게 사용합니까PHP는 변수

for($i=0; $i <= 5; $i++){ 
    $anyway = $_POST['smth'].$i; 
} 

? PHP처럼 뭔가를 할 수 있습니다.

$sql = "INSERT INTO try (column_1) VALUES ('".$anyway."')"; 
+0

에 http : // PHP를. net/manual/en/mysqli.quickstart.prepared-statements.php – Jpsh

+1

루프를 통해 매번'$ anyway'를 재 할당합니다. 결국 그것은 마지막 반복의 값일 것이므로 단지 $ anyway = $ _POST [ 'smth']이다. "5";' – Barmar

답변

1

먼저, for 루프에서 사용하기 전에 변수에 $ _POST [ 'smth']를 저장하는 것이 좋습니다.

$smth = $_POST['smth']; //remember to sanitize strings taken from user input 
$anyway = ""; // Declare $anyway before the for loop to avoid overwriting it 
for($i=0; $i <= 5; $i++){ 
    $anyway = $smth.$i; 
} 

그럼 당신은 설정하고 데이터베이스 연결을 테스트해야합니다

$mysqli = new mysqli("example.com", "user", "password", "database"); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

마지막으로, 준비, 바인딩 및 쿼리 실행 :

$stmt = $mysqli->prepare("INSERT INTO (column_1) VALUES (?)"); 
$stmt->bind_param("s", $anyway); 
if (!$stmt->execute()) { 
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; 
} 
+0

준비된 문장을 사용하는 것은'$ sql'에 변수를 대입하는 대신 mysqli_stmt_bind_param을 사용하는 것입니다. – Barmar

+0

당신은 정확합니다; bind_param() 함수를 포함하도록 응답을 업데이트하고 for 루프 외부에 변수 $를 선언하여 덮어 쓰지 않도록합니다. –