1

関連性に応じて検索結果を作成するためのこの単純なコードがあります。

$stmt = $db->query('SELECT * FROM `apps` WHERE MATCH(appName, appSeller) AGAINST("angry")');
$appCount = $stmt->rowCount();

echo $appCount;

そして、それは何の結果も示していません!

助けてくれてありがとう、マルセル

4

4 に答える 4

3

Stackoverflowのユーザビリティはゼロ未満です。
PDOタグの下に質問を投稿するすべての人に表示されるハーフスクリーンバナーを作成する方法がないため:

質問する前にPDOに接続するときに、ERRMODE_EXCEPTIONを有効にします。

エラーメッセージなしで質問するのは無意味ですが、エラーメッセージが表示されると質問が不要になる可能性があります。

$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$opt = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
$pdo = new PDO($dsn,'root','', $opt);
于 2013-03-04T19:01:14.160 に答える
1

試す

 'SELECT * FROM `apps` WHERE MATCH(appName, appSeller) AGAINST("angry")' 

phpmyadmin で実際に何かを返すかどうかを確認します。

于 2013-03-04T18:44:11.487 に答える
0

これを試して

   <?php
  // Connection data (server_address, database, name, poassword)
   $hostdb = 'localhost';
   $namedb = 'tests';
   $userdb = 'username';
   $passdb = 'password';

 try {
  // Connect and create the PDO object
 $db = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
 $db->exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8

 // Define and perform the SQL SELECT query
 $sql = "SELECT * FROM `apps` WHERE MATCH(appName, appSeller) AGAINST("angry")";
 $stmt = $db->query($sql);

  // If the SQL query is succesfully performed ($stmt not false)
 if($stmt !== false) {
  $cols = $stmt->columnCount();           // Number of returned columns

   echo 'Number of returned columns: '. $cols. '<br />';

 // Parse the result set
  foreach($stmt as $row) {
  echo $row['id']. ' - '. $row['name']. ' - '. $row['category']. ' - '. $row['link'].  '<br />';
 }
 }

 $db = null;        // Disconnect
 }
 print_r($sth->errorInfo());
 }
?>
于 2013-03-04T18:51:54.740 に答える
-1

コードを try および catch ブロックで囲むと、SQL 構文のどこが間違っているかの手がかりが得られるはずです。

    try {

         // your code


    } catch ( PDOException £e ) {

         echo $e->getMessage();
         exit();

    }
于 2013-03-04T18:47:47.287 に答える