1

MySQL に約 1000 レコードを挿入しようとしています。しかし、以下の私の試みは、最初のクエリでのみ「挿入」します。その後、「or die」というエラー メッセージが表示されます。if ステートメントを乱数 (5 以外) に変更しようとしましたが、最初の挿入後に常に終了します。私は何を間違っていますか?

$i=0;
foreach(.....){
    if($>5){
        insert($name, $phone);
    }
}

function insert($n, $p){

    $dbhost = "---"; 
    $dbuser = "---";
    $dbpass = "---";
    $dbname = "---";

    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to mysql");
    mysql_select_db($dbname);

    $query ="INSERT INTO foo (name, phone) VALUES ('$n', '$p')";
    mysql_query($query) or die('Error, query failed');  
    mysql_close();
}
4

2 に答える 2

3

これはあなたのコードです

$i=0;
foreach(.....){
    if($>5){
        insert($name, $phone);
    }
}

function insert($n, $p){

    $dbhost = "---"; 
    $dbuser = "---";
    $dbpass = "---";
    $dbname = "---";

    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to mysql");
    mysql_select_db($dbname);

    $query ="INSERT INTO foo (name, phone) VALUES ('$n', '$p')";
    mysql_query($query) or die('Error, query failed');  
    mysql_close();
}

1行を挿入するためだけにMySQLに接続した後、切断して再接続するのは非常に高価な操作です!!!

次のように再編成してみてください。

$dbhost = "---"; 
$dbuser = "---";
$dbpass = "---";
$dbname = "---";
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to mysql");
mysql_select_db($dbname);
$i=0;
foreach(.....){
    if($>5){
        insert($name, $phone);
    }
}
mysql_close();

function insert($n, $p){
    $query ="INSERT INTO foo (name, phone) VALUES ('$n', '$p')";
    mysql_query($query) or die('Error, query failed');  
}
于 2012-04-30T19:34:53.617 に答える
2

主キー エラーが発生していますか?

于 2012-04-30T19:28:04.623 に答える