0
$feedback_list = array( 
    array('date1', '87586cb8b79861edcc4e6a12104b87529c53050375904ff180'), 
    array('date2', 'abc1d08c3e42cffa7eaaa84eb4fe04b44c34be497ce7e8ea26') 
);

foreach($feedback_list as $feedback) {
    $result = mysql_query("INSERT INTO 'inactive_users' (token, username) 
       SELECT (token, username) FROM active_users WHERE token = '$feedback[1]'");
    if (!mysql_query($result,$con)) { die('Error: ' . mysql_error()); }
}

..正しい値をエコーし​​ます。これはactive_usersテーブルにも存在しますが、値は2番目のテーブルにコピーされません。エラーは次のとおりです。

エラー:クエリが空でした

4

3 に答える 3

1

次のようになります。

foreach($feedback_list as $feedback) {
    $result = mysql_query("INSERT INTO inactive_users (token, username) SELECT token, username FROM active_users WHERE token = '{$feedback[1]}'");
}
于 2012-05-29T15:07:38.863 に答える
1

mysql_queryをループ内に配置しないでください。

INSERTステートメントは、1つの大きな文字列に集約できます。

ただし、最初に述べたこととは異なり、selectステートメントにはループを使用してから、結果を取得して挿入クエリを連結する必要があります。ループの後にそれを実行する

$feedback_list = array( 
array('date1', '87586cb8b79861edcc4e6a12104b87529c53050375904ff180'), 
array('date2', 'abc1d08c3e42cffa7eaaa84eb4fe04b44c34be497ce7e8ea26') 
);
$insert = null;
$select = "SELECT (token, username) FROM active_users WHERE token = '%s'";
foreach($feedback_list as $feedback) {
    $sql = print_f($select, $feedback[1]);
    $result = mysql_query($sql) or die("SQL:$sql<br />\n". mysql_error());
    $values = mysql_fetch_row($result);
    //$values['token'] => token
    //$values['username'] => username

    $insert .= "INSERT INTO 'inactive_users' (token, username) VALUES ('{$values['token']'}','{$values['username']}')\n";
}
 $theInsert = mysql_query($insert);
于 2012-05-29T15:24:51.453 に答える
1

あなたはmysql_query2回実行しています。試す

foreach($feedback_list as $feedback) {
    $result = "INSERT INTO `inactive_users` (token, username) 
       SELECT token, username FROM active_users WHERE token = '{$feedback[1]}'";
    if (!mysql_query($result,$con)) { die('Error: ' . mysql_error()); }
}
于 2012-05-29T15:26:38.280 に答える