-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"]

1 つまたは複数の LIKE を使用して SQL ステートメントを作成できるようになりました。

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

それが役に立てば幸い!

于 2013-03-13T03:47:25.947 に答える