複数の「?」を使用して、PHP で select ステートメントを実行したいと考えています。それ、どうやったら出来るの?次のコードはそれを行うべきだと思いますが、何が問題なのですか?
$con = mysql_connect("database","login","password");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("posdictionary", $con);
$stmt = $con->prepare("SELECT * FROM WordPOS WHERE WORD LIKE '?%' AND pos LIKE BINARY '%?%'");
$stmt->bind_param('ss', $pattern, $pos);
$pattern = $_POST["pattern"];
$pos = $_POST["pos"];
$value = "";
if ($stmt->execute()) {
while ($row = $stmt->fetch()) {
$value = $value . $row['word'] . " " . $row['pos'] . "<br />";
}
}
更新:
以下の答えは素晴らしいです。PHP でエラーが発生しました。'?%' は php の sql ステートメントでは有効ではありません。クエリは次のようになります。
$pattern = $_POST["pattern"] ."%";
$pos = "%". $_POST["pos"] ."%";
$stmt = $con->prepare("SELECT word, pos FROM WordPOS WHERE word LIKE ? AND pos LIKE BINARY ?");
次に、残りの回答に従ってください。