Binding String PHP MySQL с использованием MATCH AGAINST в запросе

Привязка PHP MYSQL для подготовки оператора с использованием mysqli работает нормально, когда я использую такой запрос

if ($stmt = $dbh->prepare("SELECT url, title, fulltxt FROM links WHERE id = ? ")){// do something}

но это не работает, когда я использую этот запрос

if ($stmt = $dbh->prepare("SELECT url, title, fulltxt FROM links WHERE MATCH(fulltxt)  AGAINST(?) ")) {//do something}

Я недостаточно опытный программист. Таким образом, любое тело может сказать мне правильный способ использования «MATCH () AGAINST ()» с вопросительным знаком в запросе для значения привязки.

0

Решение

Новый полный код на основе pastebin:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>

<?php
error_reporting(-1);
// here the db details

$query = "%".$_GET['q']."%";

// Connecting to the server and selecting database
$dbh  = new mysqli($host, $user, $password,  $database);

if ($dbh->connect_error) {
echo 'Unable to connect to database '. $dbh->connect_error;
} else {
// run query to select records
if ($stmt = $dbh->prepare("SELECT url, title, fulltxt FROM links WHERE fulltxt LIKE ?")) {
// binding user-supplier input $class to the parameter as string
$stmt->bind_param("s", $query);
// executing the statement
$stmt->execute();
// binding the table columns Name and Email to the $Name and Email parameters respectively.
$stmt->bind_result($URL, $TITLE, $FULLTXT);
/* fetch associative array */
while ($stmt->fetch()) {
echo $URL. ' -- '. $TITLE. '<br />';
}
} else {
echo "Prepare failed: (" . $dbh->errno . ") " . $dbh->error;
}
}
?>

</body>
</html>

Проблема была исправлена ​​заменой MATCH на LIKE и конкатенацией переменной с процентными символами на обеих сторонах.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector