ここでいくつか試しましたが、どういうわけか後のアクションを実行するためにPHP経由でレコードを取得できないようです。基本的に私はステージングテーブル(WORKS)にレコードをロードしています。プロキシを呼び出してライブテーブル(WORKS)にマイグレーションしてから、イメージを生成するためにインポートされた各レコードをループするだけです。クエリをエコーしてWorkbench経由で実行すると、データが取り戻されてしまいますが、何とかPHPでクエリが何も返されない場合、何が欠けていますか?PHP/Mysql - ファイルとクエリレコードをロードする
public function import_members() {
$this->filepath=htmlspecialchars(strip_tags($this->filepath));
$status = "success";
$msg = "";
$query = "LOAD DATA LOCAL INFILE '" . $this->filepath ."' INTO TABLE temp_imported
CHARACTER SET 'latin1'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\\n'
IGNORE 1 LINES
(fname,lname,email,phone,address,city,province,postal,dob,member_no)";
echo $query . "<br><br>";
// EXECUTE LOAD - ON SUCCESS
if ($this->conn->query($query)) {
try {
// CALL PROC TO IMPORT DATA INTO LIB_MEMBERS
$stmt = $this->conn->query("CALL sp_import_members(@rowcount)");
while ($row = mysqli_fetch_array($stmt)) {
$records = $row[0];
}
mysqli_free_result($stmt);
$msg = "File was imported successfully! <br> A total of " . $records . " records were imported from your file" ;
}
catch (Exception $ex) {
$msg = $ex ;
$status = 'danger';
}
echo $status . "<br><br>";
if ($status == "success"){
// GENERATE BARCODE IMAGES FOR IMPORTED
$querybar = "Select barcode from lib_members where barcode is not null and DATE(datein) = date(now())";
echo $querybar . "<br><br>";
$stmt2 = $this->conn->query($querybar);
$rownum = $stmt2->num_rows;
if ($rownum){
echo $rownum;
}
else {
echo "NO";
}
}
}
else {
$msg = "There was a problem importing your file";
}
echo "<div style='width:40%; margin:0 auto; text-align:center; font-size:12px;' class='alert alert-". $status ."' role='alert'>" . $msg . "</div>";
}
}
私の出力は現在、これを示しています
LOAD DATA LOCAL INFILE '/Users/DB/Sites/Scan_MASTER/imported/members.csv' INTO TABLE temp_imported CHARACTER SET 'latin1' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (fname,lname,email,phone,address,city,province,postal,dob,member_no)
success
Select barcode from lib_members where barcode is not null and DATE(datein) = date(now())
Notice: Trying to get property of non-object in /Users/db/Sites/Scan_MASTER/_members.php on line 590
NO
ライン590は
質問にエラーがないかどうか確認してください。 –
私はmysqli_error($ querybar)を試しましたが、何も戻ってこなかったので、私はrow_numオプションを試してみたのです。 Workbenchで「バーコードを選択」ステートメントを実行すると、レコードが正常に戻ってきているので、PHPのシーケンスに固有のように思えます。 – denisb
'mysqli_error($ querybar)' - '$ querybar'そしてあなたは' $ this-> conn'をクエリの接続として使います。それらは一致しません。 mysqli_error()はクエリではなく接続引数を使用する必要があります。だからあなたは本当の誤りを得ていないのです。 –