php - 在 php bind_param 函数中插入 SQL 语句
问题描述
所以我试图使用 sql 命令准备来避免注入,但我不知道如何在 bind_param 函数中使用 SQL语句。我的代码是这样的:
function saveContent($POST_DATA) {
$conn = new mysqli("HOST", "USER", "PASSWORD");
if ($conn->connect_error) {
return false;
} else {
$command = $conn->prepare("INSERT INTO events (title, dateHappening, time, topic,
subtopic, extraMessage) VALUES (?, ?, ?, ?, ?, ?)";
$command->bind_param("ssssss", $POST_DATA["inputTitre"], $POST_DATA["inputDate"],
$POST_DATA["inputHour"], $POST_DATA["selectTopic"], $POST_DATA["selectSubTopic"],
$POST_DATA["inputMessage"]);
$command->execute();
$command->close();
$conn->close();
}
}
这里的事情是,如果它是空白的,我想extraMessage
是 NULL(因为这个字段不是强制性的)。为了优化这段代码,我想使用类似的东西
NULLIF($POST_DATA["inputMessage"], "")
是否可以在 bind_param 函数中插入上述语句?
解决方案
问题已解决(请参阅我的问题下的评论):
不可以。您必须在查询中编写所有 SQL 表达式,并且只在值所在的位置插入占位符。因此,本质上,您将
NULLIF(?, "")
输入查询,而不仅仅是一个?
. ——</p>
推荐阅读
- latex - 如何使文本在 LateX 中看起来像那样
- javascript - Chart.js 分组条形图 Onclick 事件
- python - AttributeError:“int”对象没有属性“next”
- visual-studio-code - 有没有办法让安装按钮在 VSCode 扩展 Webview 中工作?
- postman - 在一次调用中保存数组并在邮递员的另一次调用中使用它
- python - 如何总结熊猫数据框
- kotlin - 如何在 kotlin 中使用 :: 调用带参数的静态方法
- php - 缺少必需的参数(laravel 8.8.0)
- python - 熊猫数据框无法正确导出到 excel
- vba - 在 VBA 中使用 RegEx 查找评级