php - 如何在 PHP 5.6 的 mysql 查询中添加引号
问题描述
我有一个$categoryName
值为 ABC/ABC 的变量(例如)。我需要在此文本“ABC/ABC”周围添加引号。这是我的 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
如何解决这个问题呢 ?感谢帮助。
解决方案
只需将引号放在字符串中。
$row = Db::getInstance()->getRow('
SELECT `id_category`
FROM ' . _DB_PREFIX_ . 'category_lang c
WHERE c.`name` = "' . $categoryName . '"');
正如评论中提到的,如果您使用准备好的语句来防止 SQL 注入,那会更好。如果你不能这样做,你应该确保$categoryName
正确地逃脱。
推荐阅读
- postgresql - 第一次安装新的 postgres 时无法在 mac Os 11.3.1 中创建用户
- javascript - 带后缀的键类型
- java - 我尝试使用带有 jdk 版本 8 的 netbeans 12 的 java 语言,但它总是在输出中出现错误
- amazon-web-services - 无法通过 SSH 隧道 Sigv4 访问 Amazon Neptune
- scenebuilder - 如何在 Eclipse 中集成 javaFX 场景构建器工具包
- apache - 如何解决安卓手机上的网站不安全问题
- javascript - 在页面已经完成加载后识别页面完成加载内容
- kotlin - 在回收站视图自动填充中编辑文本
- flask - Flask App 无法在 Gtihub Action 上运行单元测试
- linux - 如何检查bash脚本中的用户并以另一个用户身份运行