関連性に応じて検索結果を作成するためのこの単純なコードがあります。
$stmt = $db->query('SELECT * FROM `apps` WHERE MATCH(appName, appSeller) AGAINST("angry")');
$appCount = $stmt->rowCount();
echo $appCount;
そして、それは何の結果も示していません!
助けてくれてありがとう、マルセル
Stackoverflowのユーザビリティはゼロ未満です。
PDOタグの下に質問を投稿するすべての人に表示されるハーフスクリーンバナーを作成する方法がないため:
エラーメッセージなしで質問するのは無意味ですが、エラーメッセージが表示されると質問が不要になる可能性があります。
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
$pdo = new PDO($dsn,'root','', $opt);
試す
'SELECT * FROM `apps` WHERE MATCH(appName, appSeller) AGAINST("angry")'
phpmyadmin で実際に何かを返すかどうかを確認します。
これを試して
<?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());
}
?>
コードを try および catch ブロックで囲むと、SQL 構文のどこが間違っているかの手がかりが得られるはずです。
try {
// your code
} catch ( PDOException £e ) {
echo $e->getMessage();
exit();
}