-2

我想要的是使用 PHP 创建一个 API,它允许我的程序检查表中的列是否包含某个字符串。

例如,假设我输入

www.mywebsite.com/api.php?word="ANY WORD"

如果数据库是否包含该单词,脚本将回显 true 或 false。

我正在使用 MySQL 数据库,但我不知道该怎么做。


<?php

try {
  $username = '******';
  $password = '******';
  $conn = new PDO('mysql:host=******;dbname=**********', $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $e) {

echo 'ERROR: ' . $e->getMessage();

}

  $stmt = $pdo->prepare('SELECT COUNT(*) FROM wordlist WHERE words LIKE :aword');
  $stmt->execute(array('aword' => "%{$_GET['word']}%"));
  return ($stmt->fetchColumn() != 0);
?>

我做错了什么?我收到这个错误

致命错误:在第 11 行 ***** 中的非对象上调用成员函数 prepare()

4

2 回答 2

1

你需要一些类似的东西:

$pdo = new PDO(...);
$stmt = $pdo->prepare('SELECT COUNT(*) FROM `atable` WHERE `afield` LIKE :aword');
$stmt->execute(array('aword' => "%{$_GET['word']}%"));
return ($stmt->fetchColumn() != 0);

afield在示例中,我们在表中的数据库字段内的 GET 参数中搜索单词atable

于 2013-03-13T03:46:29.210 回答
0

您可以检索 url 中的单词并使用它来查询您的数据库。

对于您的示例:www.mywebsite.com/api.php?word="ANY WORD"

$keyword = $_GET["word"]

现在您可以创建一个带有一个或多个 LIKE 的 sql 语句。

$query = 'SELECT * FROM mytable WHERE column1 LIKE("%".$keyword."%") OR colomn2 LIKE("%".$keyword."%")

希望能帮助到你!

于 2013-03-13T03:47:25.947 回答