php - 将参数传递给php中的补丁函数
问题描述
我刚刚开始在 php 中开发代码,目前我正在为我大学的一名教师开发一个小型 API。
我正在使用准备好的语句与 MySQL 数据库进行交互,但在此函数中,参数不会传递给函数。
function patch_admin() {
global $db,$file, $settings;
$payload = get_json();
if($payload[password_crypt] != NULL)
{
metamessage(lang('please_use_password_function'));
return HTTP_BAD_REQUEST;
}
if($payload[admin_id] != NULL)
{
foreach($payload as $key => $value) {
if($key == "admin_id") { continue; }
$querystr="UPDATE " .table('admin'). " SET :key=:value WHERE admin_id=:admin_id";
$params = [ ':key' => $key, ':value' => $value, ':admin_id' => $payload[admin_id]];
$query = $db->prepare($querystr);
$query->execute($params);
}
}
return HTTP_BAD_REQUEST;
}
查询和参数如下所示:
UPDATE or_admin
SET :key = :value
WHERE admin_id=:admin_id
Array
(
[:key] => fname
[:value] => Bernharddiener
[:admin_id] => 1626704194
)
我在这里遗漏了一些明显的东西吗?
当我用字段名称替换 :key 时,我可以修补数据库,但我想从我发送的 JSON 中获取列名称。
最好的问候, 蒂尔
解决方案
您应该以与表名相同的方式检查和设置参数
前任 :
$querystr="UPDATE " .table('admin'). " SET `".mysql_real_escape_string($key)."` =:value WHERE admin_id=:admin_id";
$params = [ ':value' => $value, ':admin_id' => $payload[admin_id]];
推荐阅读
- javascript - 如何使用多个 Json URL 管理我的 Highcharts 钻取?
- apache-spark - 如何为嵌套目录结构定义分区外部表
- c - C中的哈希表链接问题
- python-3.x - 获取输入字符串时如何忽略空格、制表符、新行?
- reactjs - 如何在循环中获取最新的 redux 值?
- php - wp_enqueue_script 未在插件中加载
- messagekit - 在 MessageKit 中点击特定的 AccessoryView
- vector - 如何在 Rust 中提取字符串向量的元素?
- vue.js - VuePress 在开发和构建上的不同布局
- sql-server - 如何查找 SSAS(表格模型)和 SQL 数据库之间的沿袭