2011-12-11 3 views
0
// Includes rb.php here etc. 
$mail_type = array('gmail.com', 'yahoo.com', 'yandex.ru', 'hotmail.com', 'live.no'); 

for ($i = 0; $i < 100; $i++) 
{ 
    $mail = R::dispense('emails'); 
    $mail->id = $i; 

    // Create random email 
    $mail->email = strtolower(substr(base64_encode(mt_rand(99, 99999)), 0, -2)).'@'.$mail_type[mt_rand(0, 4)]; 

    R::store($mail); 
    unset($mail); // This doesn't work either 
} 

RedBeanPHP를 사용하여 100 개의 서로 다른 전자 메일을 삽입하려고합니다. 어떤 이유로 지난 작품이 데이터베이스에 삽입되어 효과적으로 마지막 작품을 대체하기 때문에이 작업을 수행 할 수 없습니다. 그것에 대한 문서를 찾을 수 없습니다. 어떤 아이디어?FOR 루프를 RedBeanPHP와 함께 사용

답변

3

RedBeanPHP는 ID를 설정 했으므로 이미 저장되어 있다고 생각합니다. 해결 방법은 $ mail-> id = $ id 필드를 제거하는 것입니다.

+0

그건 의미가 있습니다. 'R :: store'는 ID가 지정되지 않은 경우에만 새로운 자동 증가 행을 삽입합니다. 감사. – Seralize

+0

자동 증가 기본 색인에 특정 값을 강제하는 것은 경쟁 조건 문제를 묻는 것입니다 (http://stackoverflow.com/questions/5101487/possible-to-manually-set-id-of-new-rows 참조). -with-redbean-php) – dvb

0

$ mail이 이메일로 인스턴스화되었지만 R에 저장되지 않는다고 말하는 경우? 나는 R이 무엇인지는 모르겠다.하지만 그것의 객체들의 배열이 더 확장 될 수 있다면. 당신의 응답을 기다리는.

+0

'R ::'은 ** RedBeanPHP ORM **에 대한 정적 참조입니다. 'R :: Store'는'$ mail' 변수에 저장된 객체를 데이터베이스에 저장합니다. – Seralize

+0

잘 설명해 주시면 코드가 좋아 보인다 고 생각합니다. for 루프의 결과를 데이터베이스에 보내기 전에 인쇄 해 보았습니까? 그것이 당신이 원하는 것을 반환하는 경우 문제는 데이터베이스 또는 R 객체에 있습니다. –