1

私はPHPを初めて使用しますが、構文と原則があまりよくありません。私はそのようなコードを持っています:

 function exportFromTransbase($table_name) {
 //$odbc_query = "SELECT * FROM " . $table_name. " WHERE ((CDS_CTM subrange(248 cast integer) = 1) AND (CDS_LNG_ID = 16))";
 $odbc_query = "SELECT * FROM " . $table_name. "";

 $data = odbc_exec($this->odbc_id, $odbc_query);
 odbc_longreadlen($data, 10485760);
 $oufile=fopen($table_name.".sql", 'w') or die("error writing file");

    $q1='INSERT INTO `' . substr($table_name, 4) . '` VALUES';
    fwrite($oufile, $q1);

 while($row = odbc_fetch_array($data))
 {

 foreach($row as $key => $value) {
 $keys[] = "`" . $key . "`";
 if ($value == ""){
    $value = 'NULL';
 $values[] = "" . mysql_real_escape_string($value) . "";
 }
 else{
    $values[] = "'" . mysql_real_escape_string($value) . "'";
 }
 //echo "\n \n ololo  ".$value;

 }


 $mysql_query = "\n (".implode(",", $values).")," ;
fwrite($oufile, $mysql_query);
 //mysql_query($mysql_query);
 set_time_limit(0);
 unset($keys);
 unset($values);
 unset($row);
 }
 $stat = fstat($oufile);
ftruncate($oufile, $stat['size']-1);
fseek($oufile, 0, SEEK_END);
  fwrite($oufile, ";".$r);
//} while ($r < 5 );
fclose($oufile);
    if ($mysql_query){
        print "Ýêñïîðò äàííûõ èç òàáëèöû " . $table_name . " çàâåðøåí!";
        //strtolower(substr($table_name, 4))
    }
 }

何をどこでカスタマイズする必要があるので、たとえばSizeと呼ばれる1つを除くすべてのテーブルフィールドをエクスポートするため、dbに挿入する必要があります。このフィールドはnullです。

また、簡単な場合は、SQLクエリを5000行のバッチに分割する方法を教えてください。したがって、(5000行)を挿入してから、さらに5000を挿入します。

しかし、最初に、1つを除くすべてのフィールドをエクスポートする必要があります...

4

2 に答える 2

0

私の知る限り、それは不可能です。

簡単に使用できます:

SELECT field1, field2, field3, field4 FROM table

MySQLの1つを除くすべての列を選択しますか?を参照してください。

そして、あなたがあなたの中にもっと多くのフィールドを持っているなら、あなたtableはあなただけを使うことができます*

あなたの時にあなたがしたくないものを作るinsertことができます。 conditionignoresfieldnew table

于 2013-03-05T05:57:41.090 に答える
-1

使える

"select * from {table} where {sth} != {condition}"

次に、1つを除くすべてのデータをフェッチできます。1つはあなたの状態に従って抽出されます。一方、5000で挿入したい場合は、5000行を一度に読み取ってに挿入することができます。

于 2013-03-05T05:22:41.113 に答える