0

LIKE句でvarを使用するにはどうすればよいですか?

次のコードは正しい応答を送信しません...

$query = sprintf("
SELECT
place.ID AS id,

IF(
    place.translationID IS NULL,
    place.name,
    placel10n.text
    ) AS cityname,

FROM
places AS place

 LEFT JOIN `l10n-strings` AS placel10n ON (place.translationID = placel10n.translationID AND placel10n.languageCode = 'de')

 WHERE
 place.name LIKE CONCAT('$fchar', '%');
 AND
place.`status` = '1'

");
4

2 に答える 2

0

$fchar検索したい文字列が含まれている場合は、次のようにします。

$sql = "
SELECT
place.ID AS id,

IF(
    place.translationID IS NULL,
    place.name,
    placel10n.text
    ) AS cityname,

FROM
places AS place

 LEFT JOIN `l10n-strings` AS placel10n ON (place.translationID = placel10n.translationID AND placel10n.languageCode = 'de')

 WHERE
 place.name LIKE CONCAT('%s', '%');
 AND
place.`status` = '1'";

$query = sprintf($sql,$fchar);

したがって、 の場合$fchar = 'apple'、クエリは「apple%」と一致しようとします。

于 2013-03-20T20:34:25.957 に答える
0

あなたはただできると思います

LIKE '$fchar%';

または、準備されたステートメントを使用します(ただし、sprintf の使用で何が必要かについては明確ではありません)

place.name LIKE :fchar;

$fchar = $fchar'.'%';

$something->bindParam(':fchar', $fchar, PDO::PARAM_STR);
于 2013-03-20T20:34:52.493 に答える