この sql クエリの準備が無効である理由がわかりません。
$from = 1462890333;
$to = 1462890335;
$token = 123;
$sql = "SELECT temperature FROM `am_measurements` WHERE token = ? AND date BETWEEN ? AND ?";
if($stmt = $conn->prepare($sql)){
$stmt->bind_param('sii', $token, $from, $to);
$stmt->execute();
$stmt->bind_result($a);
$stmt->fetch();
echo $a;
} else {
echo "not good";
}
結果は「ダメ」。それはどのように行われるべきですか?
am_measurements テーブルのデータは次のとおりです: https://mega.nz/#!tJEx0IiL!OoXHSVJh0A0kAVzYrcJKL6BGxktcZZWpOC26KV-Egao
@編集
問題の原因はわかりましたが、その理由と解決方法はわかりません。
$sensor_id = 0;
$from = 1462890333;
$to = 1462890335;
//MySQL Database Connect
include 'database.php';
$stmt = $conn->stmt_init();
$stmt = $conn->prepare("SELECT token FROM `am_sensors` WHERE id = ?");
$stmt->bind_param('i', $sensor_id);
$stmt->execute();
$stmt->bind_result($token);
$stmt->fetch();
echo $token; //this returns "123"
$sql = "SELECT temperature FROM `am_measurements` WHERE token = ? AND date BETWEEN ? AND ?";
if($stmt = $conn->prepare($sql)){
$stmt->bind_param('sii', $token, $from, $to);
$stmt->execute();
$stmt->bind_result($a);
$stmt->fetch();
echo $a;
} else {
echo "not good";
}
以前のSQLクエリを削除すると、すべて問題ありません。