0

私はギャラリープロジェクトに取り組んでいて、このエラーで停止しました。基本的に、たとえばユーザーがimage.php?id = 37にアクセスすると、行IDがurlパラメーターと等しい画像テーブルからすべての行情報を取得します。これらはすべて、取得される実際の画像のURL、ギャラリーID、画像IDと同様に機能します。私は今、このページに説明を取り込もうとしています。これも画像テーブルから取得されます。先に進んで列を追加し、いくつかのテストの説明を入力して、PHPページにコードを追加しました。これは、過去数日間正常に実行していたため、次のエラーが発生します。

クエリの実行に失敗しました:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。5行目の「descFROMimagesWHERE id = 37」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

過去の試みとは異なるものとして何も突き出ていないので、何がうまくいかなかったのかわかりません:L。

私のimage.phpページ:

<?php foreach($rows as $row): ?> 
    <div class="image" style="background: url('resources/galleries/images/<?php echo htmlentities($row['url'], ENT_QUOTES, 'UTF-8'); ?>') no-repeat; background-size: 100%; ">
        <? if(empty($_SESSION['user'])) { } else { print '<div class="image-overlay"><a href="admin/includes/delete-img.php?id=' . $galname . '">Delete</a></div>';}?>
    </div>
    <div class="image-info">
        <a href="gallery.php?id=<?php echo htmlentities($row['gallery'], ENT_QUOTES, 'UTF-8'); ?>">&larr; Back to Gallery</a>
        <p class="desc"><? echo htmlentities($row['desc'], ENT_QUOTES, 'UTF-8'); ?></p>
    </div>
<?php endforeach; ?>    

そして、$ id = $ _GET ['id'];のクエリ:

$query = " 
    SELECT 
        id,
        url, 
        gallery,
        desc
    FROM images
    WHERE id = $id
"; 

変更されたのは、クエリにdescを追加したことと、説明をエコーするためにPHPを追加したことだけです。私のテーブルには必要な追加の列があり、何が起こったのかわかりません。単純な間違いかもしれませんが、構文にエラーが表示されません。どんな助けでも大歓迎です、ありがとう!

4

2 に答える 2

1

descSQLのキーワードです。引用符で囲む必要があります。すなわち

SELECT 
    id,
    url, 
    gallery,
    `desc`
FROM images
WHERE id = $id
于 2013-03-09T15:25:26.503 に答える
1

クエリの前後にバッククォートで列を区切りたくない場合のもう1つのオプションは、テーブルにエイリアスを指定することです。

SELECT  i.id,
        i.url, 
        i.gallery,
        i.desc
FROM    images i
WHERE   id = $id
于 2013-03-09T15:28:21.590 に答える