2012-01-12 4 views
0

を呼び出すときに私はかなり単純な要求を持っているし、それは間違っている理由を理解することはできません。MySQLのPHPのエラーテーブルの行

if ($_GET['linklabel'] !== '') 
{ 
    $query = "SELECT templateid FROM pages WHERE linklabel = {$_GET['linklabel']}"; 

    $result=mysql_query($query);  

    $templateid = $result['templateid']; 

    echo $templateid; 

    if ($result !== 0) 

    { 

     include($templateid.'.php'); 

    } 

    else 

    { 
     include('404error'); 
    } 
} 

テーブル内れるtemplateIdは、テストのVARCHAR値を持っています。ブラウザはtest.phpファイルを見つけることができないと言います

私は何か間違って入力しましたか?

変数$templateidをエコーし​​ても何も出力されないので、$templateid = $result['templateid'];に問題がありますか?

答えて

2

mysql_query()は、実際のデータではなく文ハンドルを返します。あなたは、あなたのクエリの結果から、個々のフィールドにアクセスする前に、データの行をフェッチする必要があります。

$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
$templateid = $result['templateid']; 

はまた、あなたがSQLインジェクション攻撃に対してWIDE OPENであり、これは一般向けのウェブサイトに行く場合は、あなたが期待できることに注意してください非常に短い順序でpwnedされます。

$query = "SELECT templateid FROM pages WHERE linklabel = '{$_GET['linklabel']}'"; 

注追加の引用符を:

1

はに$クエリラインを変更してみてください。