当然,您并没有做错什么,因为它可以在另一台服务器上运行。
它是负责该错误的远程服务器环境。
但是,无论您使用的是 mysql 还是 mysqli,您都应该做一件事 - 您必须检查查询结果并处理错误。
至少这样做:
$sql = "SELECT count(*) FROM languagep l INNER JOIN pages p
ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0";
$res = $con->query($sql) or trigger_error($con->error."[$sql]");
- 因此,您将收到有关 mysql 错误的通知并能够采取适当的措施。
但是您的代码还有另一个问题 - mysqli。
不要使用 mysqli。请改用 PDO。
它将为您节省很多未来的麻烦。
PDO 使用简单但功能强大
首先,创建一个连接
$dsn = 'mysql:dbname=test;host=localhost;charset=utf8';
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn, $user, $pass, $opt);
然后用它来运行查询:
$sql = "SELECT count(*) FROM languagep l INNER JOIN pages p
ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0";
$sth = $pdo->prepare($sql);
$sth->execute();
$totalRows = $sth->fetchColumn();
如果您不仅需要计数,还需要所有数据:
$sql = "SELECT * FROM languagep l INNER JOIN pages p
ON (l.languagePageBelongs=p.pageID) WHERE p.pageBelongs=0";
$sth = $pdo->prepare($sql);
$sth->execute();
$data = $sth->fetchAll();
$totalRows = count($data);