我有以下代码:
/// GENERATE SQL FOR LOGIN
$sql_login = "
SELECT
users.id,
users.email,
users.first_name,
users.last_name,
users.access_early_years,
users.access_early_years_news,
users.access_early_years_meetings,
users.access_early_years_bpn,
users.access_primary,
users.access_primary_news,
users.access_primary_meetings,
users.access_primary_bpn,
users.access_secondary,
users.access_secondary_news,
users.access_secondary_meetings,
users.access_secondary_bpn,
users.access_special,
users.access_special_news,
users.access_special_meetings,
users.access_special_bpn,
users.access_post_16,
users.access_post_16_news,
users.access_post_16_meetings,
users.access_post_16_bpn,
users.access_la_admin,
users.last_login,
users.login_count,
users.centre_id,
centres.name,
centres.email AS centre_email,
centres.active
FROM users
INNER JOIN centres
ON users.centre_id = centres.id
WHERE
users.email = ?
AND
users.password = ?
LIMIT 1
";
echo $sql_login;
// PREPARE THE STATEMENT
$stmt_login = $conn->prepare($sql_login);
if($stmt_login === false) {
trigger_error('Wrong SQL: ' . $stmt_login . ' Error: ' . $conn->error, E_USER_ERROR);
exit();
}
// BIND THE PARAMETERS... s = string, i = integer, d = double, b = blob */
$stmt_login->bind_param('ss',$username,$password);
// EXECUTE STATEMENT
$stmt_login->execute();
$stmt_login->bind_result(
$user_id,
$username,
$first_name,
$last_name,
$access_early_years,
$access_early_years_news,
$access_early_years_meetings,
$access_early_years_bpn,
$access_primary,
$access_primary_news,
$access_primary_meetings,
$access_primary_bpn,
$access_secondary,
$access_secondary_news,
$access_secondary_meetings,
$access_secondary_bpn,
$access_special,
$access_special_news,
$access_special_meetings,
$access_special_bpn,
$access_post_16,
$access_post_16_news,
$access_post_16_meetings,
$access_post_16_bpn,
$access_la_admin,
$last_login,
$login_count,
$centre_id,
$centre_name,
$centre_email,
$centre_active
);
// SET THE SESSIONS AND LOG THE USER IN
while ($stmt_login->fetch()) {
// DO STUFF
}
PHP版本5.4.24上的所有内容都正常运行,其中mysql 5.0.10运行IIS服务器。
但是,当使用运行plesk的mysql 5.1.73转移到PHP V5.5.14时,它不会。
它不会获取任何数据。
使用具有相同查询的phpmyadmin查询数据库时会复制此文件。一个取数据,一个不取。两个数据库都是彼此的直接副本。
我把我的头发拉了出来!有什么想法吗?UPDATE:使用另一个准备好的语句测试,一切都很顺利(这个语句是UPDATE而不是SELECT - 所以我看不出任何数据库用户权限问题)。
答案 0 :(得分:0)
好。出于某种原因, INNER JOIN 不想使用较新版本的mySQL,因此我将其更改为 LEFT JOIN ,一切正常。我仍然对为什么
感到困惑