もちろん、他のサーバーで動作するため、何か問題が発生しているわけではありません。
エラーの原因はリモートサーバー環境です。
ただし、mysqlを使用しているかmysqliを使用しているかに関係なく、実行する必要があることが1つあります。クエリ結果を確認してエラーを処理する必要があります。
少なくともこのようにしてください:
$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);