2013-06-17 2 views
-1

mysql 테이블에 루프를 통해 데이터를 삽입하고 싶지만 루프를 실행할 때만 삽입해야합니다. 500 번 같은 데이터를 내 테이블에 넣으려면 코드에 미리 감사하십시오.mysql에 데이터를 삽입 할 때 loop 루프

enter code here 



<html> 
<head> 
</head> 
<body> 
<div> 
<?php 

$con=mysqli_connect("localhost","root","khan","first"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

for($i=1;$i<500;$i++) 
{ 
$sql="INSERT INTO bio(name, fathername , address) VALUES('khan','khan','khan')"; 
echo "Number " . $i . "<br>"; 
} 

if (!mysqli_query($con,$sql)) 
    { 
    die('Error: ' . mysqli_error($con)); 
    } 

mysqli_close($con); 
?> 
</div> 
</body> 
</html> 
+0

500 개의 별도 쿼리 대신 대량 삽입을 수행하는 것이 좋습니다. – MrCode

+1

나는 진짜로이 질문이 downvotes를 번다는 것을 생각하지 않는다. 그는 알아낼 수없는 문제가있어서 우리가 그를 도와야합니다. 이것이 왜 stackoverflow가 되는가입니다. 오직 질문을 위해서뿐만 아니라 아무도 그 답을 알지 못합니다. – Tikkes

답변

0

당신이

이 시도 루프 후에 만 ​​삽입하기 때문입니다있는 테이블을 채우기에 대한 자세한 참조 :

for($i=1;$i<500;$i++) 
{ 
$sql="INSERT INTO bio(name, fathername , address) VALUES('khan','khan','khan')"; 
echo "Number " . $i . "<br>"; 

if (!mysqli_query($con,$sql)) 
    { 
    die('Error: ' . mysqli_error($con)); 
    } 
} 

당신이 볼 수 있듯이을 지금 mysqli_query입니다 루프 안에 있으므로 하나만이 아니라 500 번 실행됩니다 ({ } 위치 확인).

또한 사용하지 마십시오. die(); 이 대신 올바른 오류 처리를 사용하십시오. 예를 들어

: 당신이 잘못 됐을 것을 반환 할 수 있습니다 물론

for($i = 1; $i < 500; $i++) { 
//INSERT AND STUFF 
if(!mysqli_query($con, $sql)) { 
echo "Something went wrong. Try again."; 
break; 
} 
} 

. 따라서 실제 SQL에서 발생한 오류입니다. 당신이 함수에 넣고 경우

Look at the Mysqli documentation for this.

, 당신은 break;를 사용할 필요가 해달라고. 대신 return "something"; 문을 사용하여 오류를 반환하고 for 루프를 종료 할 수 있습니다.

이제 끝낼 것입니다 : 당신은 할 수 있는지 확인하기 위해 삽입하는 방법에 대한 준비된 문을보고 할 수 있습니다뿐만 아니라

function insertFunction() { 
    for(..... 
     //DO INSERT 
     if(!mysqli_query(... 
      return "Errormessage: "+ $mysqli->error; 

} 

1 삽입 기록하는 대신 데이터베이스 (500)를 조회 500 타임스.

This might get you started on prepared statements

0

는 쿼리

01,236,947,112,586,875,242 어떤 루프없이 DB 측면에서 그렇게 할 수 이제

$con=mysqli_connect("localhost","root","khan","first"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

for($i=1;$i<500;$i++) { 
    $mysqli_query ="INSERT INTO bio(name, fathername , address) VALUES('khan','khan','khan')"; 
    echo "Number " . $i . "<br>"; 
    // <<-- you always leave a closing bracket here 
    if (!mysqli_query($con,$sql)) { 
     die('Error: ' . mysqli_error($con)); 
    } 
} 
mysqli_close($con); 

for 범위 내 mysqli_query 포함

가짜 데이터 https://stackoverflow.com/a/17139749/1920232

+0

고마워 형, 내 말은 그런 뜻이지만 그 이유는 모르겠다. $ mysqli_query = "INSERT INTO bio (name, fathername, address) VALUES ('khan', 'khan', 'khan')"; –

+0

@ismailkhan 코드를 정확하게 복사하십시오. 덧글에 방금 게시 한 내용에서'mysqli_query'는 루프를 벗어났습니다. 'echo' 후에 여분의 중괄호를 남겼습니다. 그것을 제거하십시오.

"; } if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } } mysqli_close($con); ?>
peterm

+0

당신은 그것을 다시했다.여는 괄호와 닫는 괄호에주의하십시오. 업데이트 된 답변보기 –

관련 문제