我有一個執行SQL查詢的函數,「queryValue」實際查詢執行稍後通過。PHP:在一個函數內部創建一個MYSQL查詢
Function queryCreate($queryValue){
//DB connection variables
$host = "";
$user = "";
$password = "";
$database = "";
//create the connection
$conn = new mysqli($host, $user, $password, $database);
if ($conn->connect_error) {
die('DB Connection error: (' . $conn->connect_error . ') ' . $conn->connection_errorno);
}
$query = mysqli_query($conn,$queryValue) or die(mysqli_error($conn));
if ($result = mysqli_fetch_array($query,MYSQLI_ASSOC)) {
fputcsv($fh, array_keys($result));
fputcsv($fh, $result);
while ($result = mysqli_fetch_array($query,MYSQLI_ASSOC)) {
fputcsv($fh, $result);
}
}
return $queryValue;
}
我然後試圖在單獨的if語句中分配查詢值。下圖:
if(isset($_POST["Submit"]) && ($_POST['Weight'] == 'Weight')) {
$fh = csvCreate("Output Weight Null ".date('m-d-Y-His').".csv");
$queryValue = queryCreate('SELECT * FROM `table` WHERE WEIGHT = 0 OR weight IS NULL');
}
我的問題是,查詢不會似乎被傳遞給函數。任何人都可以提出我在這裏出錯的地方嗎?非常感謝。
的csvCreate功能如下所示:
function csvCreate($filename){
header("Cache=Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$filename}");
header("Expires: 0");
header("Pragma: public");
$fh = @fopen('php://output', 'w');
return $fh;
}
你怎麼知道該參數不傳遞給函數?作爲該函數的結果,爲什麼返回查詢? – Shadow
也許這是一個假設。 CSV顯示爲空白。我試圖將'queryValue'傳遞給函數,因爲它在IF語句中被調用。 –
您是否嘗試直接從您最喜愛的mysql管理器應用程序(例如phpmyadmin)運行查詢?如果是的話,你有沒有得到任何記錄? $ fh變量(用於輸出數據到csv的文件處理程序)來自哪裏?如果它沒有在函數中聲明爲全局的,php將假定$ fh是一個局部變量。 – Shadow