首页 > 编程语言 >编程建立查询

编程建立查询

时间:2025-01-23 22:21:30浏览次数:1  
标签:UPDATE 建立 fields 编程 update 查询 values array

问题
希望由一个字段名数组构造一个INSERT或UPDATE查询。例如,希望在数据库中插入一个新用户。不是硬编码写入用户信息的各个字段(如用户名、email地址、邮编、出生日期等),可以把这些字段名放在一个数组中,并使用这个数组建立查询。这样更易于维护,特别是如果需要根据条件用相同的字段集进行插入(INSERT)或更新(UPDATE
时,这种方法就很有用。
解决方案
要构造一个UPDATE查询,需要建立字段/值对的一个数组,然后使用implode()把这个数组的各个元素连接起来。
建立一个UPDATE查询
$user = 'admin';
$password = '123456';
$db = new PDO('mysql:host=127.0.0.1;port=3306;dbname=dvwa', $user, $password);
//字段名列表
$fields = array('symbol','planet','element');

$update_fields = array();
$update_values = array();
foreach($fields as $field){
$update_fields[] = "$field = ?";
//假设数据来自一个表单
$update_values[] = $_POST[$field];

}
$st = $db->prepare("UPDATE zodiac SET " . implode(',', $update_fields) . " WHERE sign = ?");
//将'sign'增加到值数组
$update_values[] = $_GET['sign'];
// 执行查询
$st->execute($update_values);

对于INSERT查询,也要做同样的工作,不过SQL语法有一点不同
建立一个INSERT查询
$fields = array('symbol','planet','element');

$placeholders = array();
$values = array();
foreach($fields as $field){
// 每个字段一个占位符
$placeholders[] = "?";
// 架设数据来自一个表单
$values[] = $_POST[$field];
}

$st = $db->prepare("INSERT INTO zodiac (" . implode(',',$fields) . ") VALUES (" . implode(',', $placeholders) .")");
执行查询
$st->execute($values);

标签:UPDATE,建立,fields,编程,update,查询,values,array
From: https://www.cnblogs.com/xueshi/p/18688699

相关文章

  • 并发编程 - 线程同步(一)
    经过前面对线程的尝试使用,我们对线程的了解又进一步加深了。今天我们继续来深入学习线程的新知识——线程同步。01、什么是线程同步线程同步是指在多线程环境下,确保多个线程在同时使用共享资源时不会发生冲突或数据不一致问题的技术,保证线程间的正确协作。它的目的是使得多个......
  • 第五章java面向对象编程(上)
    面向对象编程Java的核心就是OOP初始面向对象面向过程思想:步骤思维清晰,第一步做什么,第二步做什么…。适合解决一些简单的问题面向对象思想:物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行独立思考。最后,才对某个分类下的细节进行面向过程的......
  • Vue编程式路由跳转多次执行报错
    文章目录问题描述路由跳转的两种形式问题原因解决方案1.传递回调函数2.重写`push`方法(推荐)代码实现细节解析1.为什么不能直接使用`this.originalPush()`?2.`this`的指向是什么?3.`call(this)`的作用4.异常捕获的意义其他注意事项总结问题描述在使用Vue......
  • 编程界“华山论剑”:PHP与Go,谁主沉浮?
    在编程的广阔天地里,选择一门合适的编程语言就如同为一场冒险挑选趁手的武器,至关重要却又常常令人纠结。当我们面对PHP与Go这两种备受瞩目的编程语言时,这种纠结愈发明显:PHP,作为Web开发领域的老牌劲旅,拥有着庞大的开发者社区和丰富的框架资源,能轻松搭建起功能强大的动态......
  • python flask中使用or查询和and查询,还有同时使用or、and的情况
    在Flask中处理数据库查询时,通常会结合使用ORM工具,例如SQLAlchemy。以下是or查询、and查询以及两者同时使用的示例。文章目录基础准备1.使用or_查询2.使用and_查询3.同时使用or_和and_4.更加复杂的嵌套查询基础准备假设有一个模型User,定义......
  • ps ef命令查询进程号pid
      楼兰胡杨已经在《五分钟扫盲:25个工作中常用的Linux命令》分享了ps命令的简单使用方法,但是,写的过于笼统,这里详细介绍一下。  语法:ps -ef|grepprocessName  功能:查看当前进程(process)的状态。  options:-e显示所有进程,-f全格式。  说明:英文全拼是processst......
  • 从入门到起飞:一线大厂前端工程师的AI编程进化论 - 提升10倍生产力的秘密!!!
    0.前言(求......
  • 【Spring Boot编程】Spring Boot实现防盗链功能详解
    前言在当今的互联网环境中,资源的保护愈发重要。防盗链作为一种保护网站资源不被其他网站随意盗用的手段,显得尤为关键。本文将详细介绍如何在SpringBoot项目中实现防盗链功能。什么是防盗链防盗链是指防止未经授权的网站通过链接直接访问本网站的资源,比如图片、视频、文件等。......
  • AI编程助手文心快码插件结合IDEA辅助编程
    文心快码介绍文心快码(BaiduComate)是由百度基于文心大模型研发的编程辅助工具,可提供自动代码生成、单元测试生成、注释生成以及智能问答等功能。支持上百种编程语言,旨在帮助开发者大幅提升编码效率。使用Comate,让编程更加高效和便捷 文心快码的核心优势在于其广泛的代码理......
  • AI编程助手-CodeGeeX插件结合IDEA辅助编程
    CodeGeeX介绍CodeGeeX是一款基于大模型的智能编程助手,它可以实现代码的生成与补全、自动为代码添加注释、自动解释代码、自动编写单元测试、实现代码审查CodeReview、自动修复代码fixbug、自动生成commitmessage完成git提交,以及在不同编程语言的代码间实现互译、针对技术和......