fulltext.php
Fulltextové hledání v MySQL
php
<?php
$host = 'localhost';
$name = 'test';
$user = '';
$pass = '';
$options=array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
);
$db=new PDO("mysql:host=$host;dbname=$name", $user, $pass, $options);
try {
$db->query("CREATE TABLE IF NOT EXISTS full(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
titulek TEXT,
clanek TEXT,
FULLTEXT (titulek, clanek)
)
CHARACTER SET utf8 COLLATE utf8_general_ci");
$insert = $db->prepare("INSERT INTO full(titulek, clanek) VALUES (?, ?)");
$insert->execute(array('Muži', 'Franta, Pavel, Jindra a Josef'));
$insert->execute(array('Ženy', 'Alena, Barbora, Cecilka a Dana'));
$insert->execute(array('Koně', 'Příšerně žluťoučký kůň úpěl ďábelské ódy'));
$select = $db->prepare("SELECT * FROM full WHERE MATCH(titulek, clanek) AGAINST(?)");
echo "<table>\n";
foreach (array('ódy', 'Barbora', 'jinDra') as $klic) {
$select->execute(array($klic));
foreach ($select->fetchAll(PDO::FETCH_OBJ) as $row) {
echo "<tr><td>$klic:</td><td>$row->titulek</td><td>$row->clanek</td></tr>\n";
}
}
echo "</table>\n";
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
Neformátovaný
Přidáno: 4.1.2014
Expirace: Neuvedeno