gpt4 book ai didi

php - 这个 php/mysql 在本地主机和远程服务器上的行为不同有什么原因吗?

转载 作者:行者123 更新时间:2023-11-29 05:02:09 25 4
gpt4 key购买 nike

我的代码在本地主机上运行良好,但是当加载到删除服务器上时,它的行为有所不同 - 本地主机上的 id 显示应有的样子(见图片) - id 是有序的。

enter image description here

然而,在远程服务器上它不是,但代码是相同的!!

enter image description here

我试过在远程服务器上的 myphpadmin 中只运行 sql 查询,没问题。

$con = mysqli_connect("localhost", "******", "******", "ps10");

if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ".mysqli_connect_error();
}

if ($_POST['selClass'] == 'All records' OR $_SESSION['selClass'] == 'All records') {
$query_rs4 = "SELECT *
FROM marker
INNER JOIN users ON marker.class = users.class";
} else {
if (empty($_POST['selClass']) && empty($_SESSION['selClass'])) {
$query_rs4 = "SELECT *
FROM marker
INNER JOIN users ON marker.class = users.class";
} else {
$query_rs4 = "SELECT *
FROM marker
INNER JOIN users ON marker.class = users.class
WHERE users.username='{$_SESSION['selClass']}'";
}
}

$rs4 = mysqli_query($con, $query_rs4) or die(mysqli_error($con));
$row = mysqli_num_rows($rs4);

echo "There are ".$row." students in this class";

最佳答案

除了您没有向我们展示创建表的代码这一事实之外,它在两台机器上的功能不同,请记住这句话

SELECT * FROM tableA JOIN tableb

意味着由于两个表中可能存在具有相同名称的字段,因此您无法确定返回的是哪个字段。

例如,如果两个表都有一个 id 字段,使用该查询意味着您不知道您将获得 tableA.id 还是 tableB.id...

如果你说:

select tableA.* from tableA join tableB

您将确定 id 字段将来自 tableA...

另外,如果你想要按 id 排序的结果,你应该明确地添加一个 ORDER BY tableA.id 子句,否则服务器可以决定按照它喜欢的顺序给你记录,甚至每次都不同查询...

关于php - 这个 php/mysql 在本地主机和远程服务器上的行为不同有什么原因吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56380455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com