0
からの期待値を得ていません。私はタブで区切られたファイルを使ってMySQLテーブルに値を設定する必要があります。私は2つのMySQLのテーブル、clients
とを持っているdata
clients
の表は、私がフェッチとコピーがphpMyAdminのに貼り付けるときはこの<em>が</em>かなり単純な作業でなければなりませんが、これは動作していない理由を私は理解することはできませんので、私は恥ずかしいのMySQL
<?php
// MySQL settings
define('DB_SERVER', 'localhost');define('DB_USERNAME', 'USER');
define('DB_PASSWORD', 'pass');define('DB_DATABASE', 'DB');
// connect to DB
if ($db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE)){}
else {echo 'Connection to DB failed';die();}
// load tab delim file
$file = "file.csv";// TSV actually
$handle = fopen($file, "r"); // Make all conditions to avoid errors
$read = file_get_contents($file); //read
$lines = explode("\n", $read);//get
$i= 0;//initialize
// loop over file, one line at a time
foreach($lines as $key => $value){
$cols[$i] = explode("\t", $value);
// get order ID for this URL
//$cols[$i]['6'] stores website URLs that match `salesurl` in the clients table
$getidsql = 'select `id` FROM DB.clients WHERE `salesurl` = \''. $cols[$i]['6'].'\'';
if ($result = mysqli_query($db, $getidsql)){
$totalcnt = mysqli_num_rows($result);
$idrow = mysqli_fetch_array($result);
echo '<h1>:'. $idrow['id'] .': '.$totalcnt.'</h1>'; //prints ':: 0'
} else {
echo mysqli_error($db);
echo 'OOPS<hr>'. $getidsql .'<hr>';
}
// if $idrow['id'] actually had a value, then
$insertqry = 'INSERT INTO `data` ......';
$i++;
} //end for each, file line loop
?>
$のgetidsqlクエリが仕事私はid
を取得しないdata
テーブルに挿入して使用する必要がIDを持っていますこのスクリプト内では、mysqli_num_rowsは常にゼロで、$ idrowには決して入力されません。エラーなし..しかし、結果なし(まあ、空の結果)
*「エラーなし」* - クエリでmysqli_error($ db)を使用している場所が表示されません。 –
なぜfile_get_contents/explodeを使用していますか?なぜ、作成したばかりの '$のhandle'を使用して、あたりのライン読みは/あなたのために爆発んfgetcsv()は、使用できませんでしたか?そしてあなたは何もチェックすることを心配しないので、エラーはありません。あなたのクエリ/ファイルコードのどれもが失敗をチェックすることはなく、単に成功を訴えるだけです。 –
lol .. busted!私が意図したのは 'if($ result = mysqli_query($ db、$ getidsql)){'は常にtrueです。私は不自由なOOPSエラーメッセージを受け取っていません。 私は\t 'エコーmysqli_error($デシベル)を追加しました;'その他に、違いはありません。 –