0

以下のコードが機能しない理由を誰でも理解できますか? 非推奨のSQL構文が原因ですか? 私はこれに困惑しています。

<?php
mysql_connect("localhost",$username,$password);  
@mysql_select_db($database) or die( "Unable to select database");

$usersearch=$_POST['search'];
$query="SELECT * FROM tracks WHERE 'artist' LIKE '%$usersearch%'";  
$result=mysql_query($query);

$num=mysql_numrows($result); 

mysql_close();

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

echo $row["artist"]." | ".$row["name"];
echo "<br>";

}  

?>
4

3 に答える 3

4

まず、mysql_*を使用しないでください。この拡張機能は、PHP5.5.0で非推奨になりました。 http://php.net/manual/en/function.mysql-query.php

mysqli_query()またはPDO :: query()を使用できます。

于 2013-02-27T15:15:31.580 に答える
1

おそらく、テーブルを選択するときに ` ではなく一重引用符 (') があるためです。そして、指摘されているように、mysql_* を使用しないでください。PDO または mysqli を使用してください。それが単なる学校のプロジェクトであっても (古い習慣はなかなか消えません)。また、追加することもできます

mysql_query($query) or die($mysql_error()); 

これはおそらく何が間違っているかを指摘するでしょう..

最後に、動的入力変数をエスケープしてください

于 2013-02-27T15:43:13.270 に答える
0

ページの上部に追加:

 error_reporting(E_ALL);
 ini_set("display_errors", 1);

ブラウザでページを開きます。エラーはありますか?

変更(これはエラーをミュートします)

@mysql_select_db($database) or die( "Unable to select database");

に :

mysql_select_db($database) or die( "Unable to select database");

ただし、間もなく廃止されるため、代わりにMySQLiまたは[PDO_MySQL][3]を使用することをお勧めします。mysql_connect

警告

この拡張機能はPHP5.5.0で非推奨になり、将来削除される予定です。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。詳細については、MySQL:APIガイドの選択および関連するFAQも参照してください。この機能の代替手段は次のとおりです。

mysqli_connect()

あなたはこの答えでそれらを使用する方法のより多くの情報を見つけることができます。

アップデート

空の結果が得られるかどうかを確認し、次を追加します。

$num=mysql_numrows($result); 
if ($num === 0) echo "Empty result"

もう一度ページを開きます。それでもページが空白の場合は、次を変更します。

echo $row["artist"]." | ".$row["name"];
echo "<br>";

に:

vardump($row);

更新2

取得した場合はEmpty result、追加するよりも

echo $query;

ページを開いてクエリを手動で実行してみてください

于 2013-02-27T15:17:12.980 に答える