2017-03-22 5 views
-1
<?php 
    include "head-main.php"; 
    include "conn.php"; 

    if(isset($_GET)){ $var = $_GET["cat"]; } 
    $data = mysql_query('SELECT kampword FROM data_dict where category=$var'); 

    $retval = mysql_query($data, $conn); 

    if(! $retval) { 
    die('Could not get data: ' . mysql_error()); 
    } 

    while($row = mysql_fetch_assoc($retval)) { 
    echo "World :{$row['kampword']} <br> ". 
    "--------------------------------<br>"; 
    } 

    ?> 

私はプログラミングでは新しいです、私のコードで何が間違っているかはわかりません。私はいつもこのエラー を取得 SQLクエリのエラークエリーが空です

私のDB

上のいくつかのデータを印刷しようとしている「データを取得できませんでした:クエリが空だった」

+3

を試してみてくださいhttp://stackoverflow.com/questions/12859942/)。それらはもはや維持されておらず(正式に推奨されていません)(https://wiki.php.net/rfc/mysql_deprecation)。 [red box](http://php.net/manual/en/function.mysql-connect.php)を参照してください。代わりに[* prepared statements *](https://en.wikipedia.org/wiki/Prepared_statement)について学び、[PDO](http://php.net/pdo)または[MySQLi](http:// php.net/mysqli) - [この記事](http://php.net/manual/en/mysqlinfo.api.choosing.php)は、あなたに最適なものを決定するのに役立ちます。 –

+3

あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)[Little Bobby Tables](http://bobby-tables.com/)[あなたが入力を逃れている場合でも、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around -mysql-real-escape-string)[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用します。 –

+0

は '$ var'文字列ですか?それは価値がありますか? –

答えて

0

をあなたは何のために二回mysql_query関数を呼び出しています。であなたのラインを交換してみてください。

<?php 
if(isset($_GET["cat"])) { 
    $var = $_GET["cat"]; 
    $retval = mysql_query('SELECT kampword FROM data_dict where category=$var'); 
}else { 
    $retval = false; 
} 
+0

エラーはなくなりましたが、それでも私のデータベースにデータをフェッチしません –

0
$data = mysql_query("SELECT kampword FROM data_dict where category=$var"); 

または

$data = mysql_query('SELECT kampword FROM data_dict where category="'.$var.'"'); 
0

([新しいコードでは、 `mysql_ *`関数を使うべきではありません]、FYI

if(isset($_GET["cat"])){ $var = $_GET["cat"]; } 
関連する問題