我想要的是使用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()
答案 0 :(得分: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
表中的atable
数据库字段内搜索GET参数中的单词。
答案 1 :(得分:0)
您可以检索网址中的字词并使用它来查询您的数据库。
为您的例子:www.mywebsite.com/api.php?sword="ANY WORD“
$keyword = $_GET["word"]
现在您可以使用一个或多个LIKE创建一个sql语句。
$query = 'SELECT * FROM mytable WHERE column1 LIKE("%".$keyword."%") OR colomn2 LIKE("%".$keyword."%")
希望它有所帮助!