PHP - 检查列是否包含字符串?

时间:2013-03-13 03:25:00

标签: php string

我想要的是使用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()

2 个答案:

答案 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."%")

希望它有所帮助!