2011-07-20 13 views
0

これはなぜ動作しないのかわかりません。私は、うまく動作する以前のプロジェクトからコードを取得しました。私はただ特定の列を選択したい。ここで私はこのようなすべてを選択した場合シンプルなmysqlの選択と挿入が機能しない

$result = mysql_query("SELECT when, where, name FROM tablename ORDER BY count DESC LIMIT 0, 20"); 

    //I dont really know how to debug php well, so this is all I have to go by to know if its not working. 
    if (!$result) 
    { 
     echo "<p>Page load has failed please try again</p>"; 
    } 

はそれが正常に動作するものイムしようと...です:

$result = mysql_query("SELECT * FROM tablename ORDER BY count DESC LIMIT 0, 20"); 

イムは、インサートをやっている場合、それは...どちらか動作しません

$query = "INSERT INTO tablename (when, where, name) VALUES ('$when' , '$where' , '$name');"; 
mysql_query($query); 

私はスペリングが、私はそれで何度か見てきた、と私は

echo $row["name"]; and the others ect while using the select all * they appear... 
を入れても、正しいと確信しています0

個々の列を選択したときのように見えます。

私は他のテーブルと同じ正確なコードを使用しており、そのうまくいっています。

どうすればこの問題を解決できますか?または少なくとも私はいくつかのより良いエラーメッセージを取得するためにPHPをデバッグすることができますか?

編集: 私は行く価値が良好であると確信している、その単純なHelloWorldの文字列 私は、ソートのためにそこに必要な選択包みのカウントを含む試みたが、それdidntのは、それを動作させます。

+0

どのように$を取得していますか?それは投稿か取得方法からですか? – rrapuya

+0

は、値ごとに手動でhelloworldを入力するだけです。 – brybam

+1

これらのクエリのいずれかについて、エラーをMySQL( 'mysql_error()')に出力して、エラーの場所を正確に表示します。 mysql_queryはエラーがあるときにfalseを返します。私は以下に答えました。 –

答えて

4

whereという語句は、予約語(SELECT,UPDATEおよびDELETEクエリのWHERE句)です。だからwhenです。 countは組み込みの関数名ですが、識別子として使用することはできますが、そうしないでください。

識別子として使用する場合は、必ずクエリーの `backticks`で囲む必要があります。列名としてクエリ言語の一部を使用しないことをお勧めします。予約されており、COUNT

http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html

+0

私は確かにそれを修正しただろうと思ったが、それはdidnt、私はどこの単語の使用を削除するために私のコードを更新しましたが、私はまだ同じ問題を抱えています。私がしなければ、選択はうまくいかない* – brybam

+0

おしゃべり、nvm私はどこを変えたのですか...いつでもそれを修正しました。ありがとう! – brybam

0

、MySQLの単語(http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html)。このようなバックティックを使用してください。

$result = mysql_query("SELECT `where`, `when`, name FROM tablename ORDER BY `count` DESC LIMIT 0, 20"); 
+0

私は確かにそれを修正しただろうと思ったが、それはdidnt、私はどこの単語の使用を削除するために私のコードを更新しましたが、私はまだ同じ問題があります。私がしなければ、選択はうまくいかない* – brybam

+0

おしゃべり、nvm私はどこを変えたのですか...それを修正しました。ありがとう! – brybam

-1

where正しい列を選択するためにtablename.whereを使用し、SQL予約語です。

+0

''ここで' 'はリテラル文字列です* *。あなたは識別子を一重引用符ではなく\ backticks \で囲みます。 –

+0

私の答えを編集しました –

関連する問題