<select>
要素の値に応じてクエリのテーブルを変更する必要がある場合にも、同様の問題が発生しました。ここでのほとんどの回答では、テーブル名をバインド変数として渡すことはできないと言われていましたが、テーブルの名前を含む変数を作成してSQLクエリに渡すと、実際に機能しました。
<?php
$conn = mysqli_connect("<host>", "<username>", "<password>", "<database>");
$variable = "table_name";
$sql = $conn->("SELECT <column_name> FROM $variable ....);
?>
つまり、関数を作成し、関数内にすべてのsqlクエリを記述しました。そして、関数パラメーターには、$tableという変数を渡しました。
function getResult($table){
$conn = mysqli_connect("<host>", "<username>", "<password>", "<database>");
$minDate = $conn->real_escape_string($_POST['minDate']);
$maxDate = $conn->real_escape_string($_POST['maxDate']);
$jobName = $conn->real_escape_string($_POST['jobName']);
$sql = $conn->query("SELECT COUNT(countX) as boxCount FROM $table WHERE job_name='$jobName' AND dateX BETWEEN '$minDate' AND '$maxDate'");
/* ... I removed the other operations from the code to make it compact */
次に、ジョブの名前の値に応じてターゲットテーブルを変更する条件を記述しました。
if ($_POST['jobName'] === "job1"){
getResult("table_name");
}
else if($_POST['jobName'] === "job2") {
getResult("table_name");
}