私のウェブサイトではphpmyadminのウェブサイト上でうまく動作しているようですSQLSTATE [HY000]:一般的なエラーsqlの結果はphpmyadminに表示されますが、私のウェブサイトには返されません
私の推測では、SET関数は返すレコードを許可しないため、このメッセージが表示されます。
私の解決策は、同じことをするためにコピーしたSQLコードを変更することですが、私のウェブサイトでは別の方法で書かれています。
Click here to see the SQL code in phpMyAdmin
私はあなたの多くはそうここにあるPHPコードを求めることがわかっています。
$servername = "mysql12.000webhost.com";
$username = "corey";
$password = "pass";
$dbname = "database";
$sql = "SQL CODE PLACED HERE. PASTED BELOW";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$rows = new RecursiveArrayIterator($stmt->fetchAll());
echo json_encode($rows);
}
catch(PDOException $e){
echo "Error: " . $e->getMessage();
}
$conn = null;
、ここでSQLコード:
SET @count =0;
SELECT *
FROM (SELECT * , @count := @count +1 AS rank
FROM montsbattlefront
WHERE RacesWon >=0
ORDER BY RacesWon DESC
) AS t
WHERE rank
BETWEEN 0
AND 100000
PHPのコードが完全に正常に動作します。 SQLコードは、私が最も懸念しているところです。 私は、ローカル変数とSETの使用を可能にするためにBEGIN ENDのようなものでSETを置き換えようとしましたが、これはphpmyadminがDELIMITERを非常に明確にサポートしていないため、誰かが私がやりたいことをするための簡単なSQLコードを書くための簡単な解決法を知っていますか?私はSQLプロではない、私は基本を知っている。
たとえば、@ countを使用する代わりに、COUNT()またはROW_NUMBER()を何らかの理由で使用できます.ROW_NUMBERはphpmyadminでも動作しません。誰かが私の基本的ではあるが巨大な問題に対する解決策を見出すことができれば、私はとても幸せになれます。
よろしく、
コーリーS.
はありがとうございました!!はい!これは素晴らしいです。 SETを削除し、この行をFROM montsbattlefrontに編集すると(SELECT @count:= 0)、そのトリックが実行されました。 –