谁能告诉我为什么第一个查询回显结果,而第二个查询在结果集中返回null?
$sql1 = '
SELECT
SQL_CALC_FOUND_ROWS
*
FROM
table1
LEFT JOIN table2 ON id_a = id_b
LEFT JOIN table3 ON id_c = id_d
WHERE id_d IS NOT NULL
AND l_type <> 2
AND l_status = 2
AND v_status >= 1
AND l_end_date >= CURDATE()
ORDER BY 1 ASC
LIMIT 20
$sql2 = '
SELECT
SQL_CALC_FOUND_ROWS
*
FROM
table1
LEFT JOIN table2 ON id_a = id_b
LEFT JOIN table3 ON id_c = id_d
WHERE id_d IS NOT NULL
AND id_d = ? //the only difference
AND l_type <> 2
AND l_status = 2
AND v_status >= 1
AND l_end_date >= CURDATE()
ORDER BY 1 ASC
LIMIT 20
我正在像过去每隔数百次一样准备,绑定和执行占位符参数。我感到困惑,为什么第二个查询没有给出任何结果?
让我知道我的问题是否缺乏细节-我的代码是如此简单,因此根本没有更多内容。
我什至尝试过将占位符替换为实际值,该实际值是一串数字,例如123456789
。当我也在本地测试时,该查询在phpmyadmin中工作正常。可能是什么问题?
这是我尝试过的方法,但是没有出现错误。这只是一个空白页。
$stmt2 = $db->prepare($sql2);
if (false === $stmt2) {
print_r($db->error_list);
echo mysqli_error($db);
echo $stmt2->error;
}
其中$ db是$db = new mysqli($dbHost, $dbUser, $dbPass, $dbName);