よりクリーンなURLパスを実装した後、mySQLデータベースからデータを取得する際にsomに問題があります。.htaccessファイルが正しいかどうかわかりません。また、いくつかの問題をmySQLから取得します
の代わりに:www.example.com/index.php?id=headline
私はこのパスを持っているでしょう:www.example.com/article/headline
私の.htaccessファイルは次のように探していますこの、およびパスが動作しているようです:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} (\s|%20)
RewriteRule ^([^\s%20]+)(?:\s|%20)+([^\s%20]+)((?:\s|%20)+.*)$ $1-$2$3 [N,DPI]
RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [L,R=301,DPI]
RewriteRule ^article/(.*)/?$ index.php?id=$1 [NC,L]
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|ico|css|js)$
その後、これはあなたが記事ページへ来て、でクリックする必要があるリンク:
<a href="article/'. urldecode($row["overskrift"]) .'">
この$行からのフェッチはスムーズに進んでいます。
問題は、私はその後、$ _GET IDに持っている場合、それはproperbly次のステップをフェッチしませんように、それは次のとおりです。
if(isset($_GET['id'])) {
$id = $_GET['id'];
$DB = "SELECT * FROM post WHERE overskrift = " . $id;
$fetch=$conn->query($DB);
$blogpost = $fetch->fetch_assoc();
エラーが最後の行に表示され、私は苦労していますこれは約3時間後ですが、何か間違っている部分は本当に見つかりません!
Fatal error: Call to a member function fetch_assoc() on a non-object in /var/www/web/xxxxxxx/xxxxx.com/index.php on line 198
私は誰かが役立つことを願って: しかし私は、私は記事を入力しようとしています。このエラーを取得し、私のフロントページの記事のリンクをクリックすることができます。
クエリが失敗しました。 '$ id'とは何ですか?クエリを作成する方法によって、SQLインジェクションが可能になります。準備されたステートメントを使用する必要があります。 – chris85
$ idは.htaccessファイルのid = $ 1に設定されています。それは(。*)です。そして私のhrefでは、$ row ["overskrift"]に設定しました Overskrift =ヘッドライン(デンマーク語) 私の考えは$ idがデータベースのヘッドラインになるということです。 次に、$ idはmySQL文の見出しと等しくなければならないと言います。しかし、それは動作していないようです –