如何在php5.6的mysql查询中添加引号

tzdcorbm  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(241)

我有一个变量 $categoryName 它的值为/(例如)。我需要在这段文字“/”周围加上引号。这是我的php代码:

public function getCategoryID($categoryName)
    {
        $row = Db::getInstance()->getRow('
        SELECT `id_category`
        FROM ' . _DB_PREFIX_ . 'category_lang c
        WHERE c.`name` = ' . $categoryName);

        return isset($row['categoryName']);
    }

以及mysql的错误。

SELECT `id_category`
        FROM ps_category_lang c
        WHERE c.`name` = ABC/ABC LIMIT 1

如何解决这个问题?谢谢你的帮助。

r6hnlfcb

r6hnlfcb1#

把引号放在字符串里。

$row = Db::getInstance()->getRow('
    SELECT `id_category`
    FROM ' . _DB_PREFIX_ . 'category_lang c
    WHERE c.`name` = "' . $categoryName . '"');

如注解中所述,最好使用准备好的语句来防止sql注入。如果你做不到,你应该确保逃跑 $categoryName 适当地。
看看如何在php中防止sql注入?

相关问题