1

こんにちは、

私はこれをよく理解できません.MySQLからレコードを取得し、それらを逆順に並べ替え、結果をページごとに4つに制限しようとしています(ページネーションを使用してページを整理しています)。現在、このエラーが返されています:

致命的なエラー: /Users/allan/Sites/4is_site/casestudylist.php の 126 行目の SQL

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM studies  ORDER BY date desc WHERE niche = '{$_GET['niche']}' $limit";

ページネーションは問題なく機能していますが、ORDER BY を追加しようとしたところ、問題が発生しました。

4

2 に答える 2

0

ところで $_GET['niche'] をエスケープするには:

$clean_niche = mysql_escape_string($_GET['niche']);
$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM studies  "
        ."WHERE niche = '{$clean_niche}' "
        ."ORDER BY date desc $limit";

これは、$_GET['niche'] 内の文字をエスケープすることで、SQL インジェクション攻撃から保護するのに役立ちます。

セキュリティを強化するには、バインドされたパラメーター (google'em) や Zend DB などのライブラリ関数を使用してデータベースにアクセスすることを検討してください。

于 2009-07-01T09:37:26.020 に答える