`
lanlansnss
  • 浏览: 45305 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PDO 更改表某字段的值 得到某个表内的数据

    博客分类:
  • php
 
阅读更多
/**
	 * 更改狀態
	 * 修改某表某字段根據某條件
	 * @param string $table
	 * @param array $status array( 'name'=>'snuser', ''=>'',.....);
	 * @param array $where  array( "name = 'test' ", 'age=22',....);where條件 
	 * @return bool
	 */
	function changeStatus( $table, Array $status, Array $where ){
		if(  ! $table ){
			throw new Exception( __CLASS__ . 'has no param - table');
		}
		foreach ( $status as $k=>$v ){
			$setStr .= "`{$k}` = {$v},";
		}
		//加工刪除(,)
		$setStr = substr($setStr, 0, ( strlen($setStr) - 1 ) );
		$condition = ' WHERE 1=1 ';
		foreach ( $where  as $v ) {
			$condition .= ' AND ' . $v ;
		}
		$sql = "UPDATE {$table} SET  " . $setStr . $condition;
		$dbh    = BaseModel::dbh();
		$stm    = $dbh->prepare( $sql );
		$stm->execute();
		//sql检测
		if( $stm->errorCode() != 00000 ){
			throw  new PDOException( __CLASS__ . '  sql error:  ' . $sql );
		}
		return true;
	}


ex:
return $dispose->changeStatus( 'xxxx', array( 'column '=>1 ), array( 'id=1' ) );




得到某个表内的数据

/**
	 * getList
	 * 得到列表
	 * $limit = 'limit 1, 10 ';
	 * $assoc = true  返回單條索引
	 */
	function getTableList( $table, Array $column, Array $where, $is_count=false, $limit = '', $assoc = false) {
		if(  ! $table ){
			throw new Exception( __CLASS__ . 'has no param - table');
		}
		foreach ( $column as $v ){
			$selectStr .= "{$v},";
		}
		//加工刪除(,)
		$selectStr = substr($selectStr, 0, ( strlen($selectStr) - 1 ) );
		$sql       = sprintf( "SELECT %s FROM %s", $selectStr, $table );
		$condition = ' WHERE 1=1 ';
		foreach ( $where  as $v ) {
			$condition .= ' AND ' . $v ;
		}
		$sql   .= $condition . $limit;
		$dbh    = BaseModel::dbh();
		$stm    = $dbh->prepare( $sql );
		$stm->execute();
		if( $stm->errorCode() != 00000 ){
			throw  new PDOException( __CLASS__ . '  sql error:  ' . $sql );
		}
		$count  =  $stm->rowCount();
		if ( true == $is_count ) {
			return $count;
		}
		if( $count == 1 && $assoc == true ) {
			return $stm->fetch( PDO::FETCH_ASSOC );
		}
		return $stm->fetchAll( PDO::FETCH_ASSOC );
		
	}


ex:得到总数
$count =  $dispose->getTableList( 'xx', array('*'), array( 'id='.$id ), true );



ex: 得到集合
 $limit = sprintf("  LIMIT %d, %d", 1, 10 ); $dispose->getTableList( 'xx', array('*'), array( 'id='.$id ), false, $limit );

分享到:
评论

相关推荐

    emoji入库mysql注意事项除了更改utf8mb4最大的坑在这里

    - **更改字段字符集**:如果已有表中的某个字段需要存储emoji表情,可以通过ALTER TABLE命令修改字段的字符集为`utf8mb4`。例如: ```sql ALTER TABLE `article` MODIFY COLUMN `content` MEDIUMTEXT CHARACTER ...

    SQL数据库原理课设.docx

    - **修改表(ALTER TABLE)**:可以添加、删除或修改表的列,如在Z表中增加一个日期字段S_entrance。 - **创建索引(CREATE INDEX)**:为提高查询效率,可以在表的特定列上创建索引。例子中创建了一个唯一索引...

    Mysql中返回一个数据库的所有表名,列名数据类型备注

    要获取某个表的列信息,包括列名、数据类型和备注,有几种方法: - `DESCRIBE 表名;` 或 `SHOW COLUMNS FROM 表名;` 或 `DESC 表名;` 这些命令会显示表的列结构,包括列名、数据类型、是否可为空、默认值以及额外...

    php+pdo实现的购物车类完整示例

    2. **修改购买数量**:`change_num`方法允许用户更改购物车中某个商品的数量。它接收商品ID和新的数量,然后更新对应记录的`num`字段。 3. **清空购物车**:`clear_cart`方法将所有属于当前用户的购物车记录删除,...

    PHP&MySQL范例精解_创建、修改、重用1.pdf

    表由行(记录)和列(字段)组成,每个列都有特定的数据类型。创建表的SQL命令如下: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(255)...

    add_edit_delete.rolyn__0.zip_69B_php mysql

    3. **更新(Update)**: 更新现有记录涉及到用户编辑已有数据,然后提交更改。在PHP中,这通常通过GET或POST请求来实现,请求中包含要更新的记录的ID以及新值。服务器端的PHP脚本会使用`UPDATE`语句根据这些信息修改...

    个人thinkphp学习笔记

    2. **获取表单数据**:在前端获取表单数据并提交到后端时,可以通过如下方式获取表单的`action`属性以及表单字段值: ```javascript var $action = $('#login_form').attr('action'); var $username = $('#...

    《PHP编程最快明白》第六讲:Mysql数据库操作_.docx

    在创建表或操作数据时,选择合适的数据类型至关重要,因为它直接影响到存储效率和查询性能。 在实际开发中,我们通常会使用像phpMyAdmin这样的工具来管理MySQL数据库,它提供了一个友好的图形用户界面,方便进行...

    PHP实例开发源码—PHP留言板 ( PHPMysql ).zip

    数据库设计通常包括创建数据表结构,如`messages`表,包含字段如`id`(主键)、`name`、`content`和`timestamp`。 在使用须知.txt文件中,可能包含了关于如何安装、配置和运行这个实例的说明。这可能包括了以下步骤...

    php mysql索引问题

    如果要实现自增索引的插入,通常在创建表时,将某个字段设置为主键并赋予AUTO_INCREMENT属性。 创建自增索引字段的MySQL语句通常如下: ```sql CREATE TABLE your_table_name ( id INT NOT NULL AUTO_INCREMENT, ...

    mysql+php.txt

    创建表时可以指定某个字段为自动增长类型: ```sql create table user ( id int unsigned auto_increment, -- 其他字段定义 primary key (id) ); ``` ### MySQL与PHP集成 尽管提供的文件内容没有直接涉及...

    图书信息管理系统

    关于数据库设计,通常会有一个"图书"表,包含诸如id(主键)、书名、作者、出版社、ISBN号、出版日期、库存数量等字段。为了保证数据的一致性和完整性,可能会设置一些约束,例如非空约束、唯一约束等。此外,可能...

    up_217616_blog_swan_o19tf.rar

    3. "12662e209ec7644df7ec34f1c5f498c4.txt" 这个文件名看起来像是哈希值,可能是为了标识某个文件或者代码的唯一性,或者记录了代码的某次更改。在开发过程中,开发者常使用哈希值来追踪文件的变化,尤其是在版本...

    MySQL逻辑架构-存储引擎-用户权限密码详解

    并发控制是数据库管理中的一个重要部分,目的是为了避免多线程环境下多个事务同时修改数据造成的不一致问题。MySQL提供了两种级别的并发控制:服务器级和存储引擎级。在锁机制上,MySQL支持读锁和写锁,其中读锁是...

    thinkphp3.2离线文档

    - **范围判断标签**: 判断值是否在某个范围内。 - **IF标签**: 条件判断。 - **Present标签**: 判断变量是否存在。 - **Empty标签**: 判断变量是否为空。 - **Defined标签**: 判断变量是否已定义。 - **Assign...

    PHP简单系统数据添加以及数据删除模块源文件下载

    然后,我们构造了一个`INSERT INTO` SQL语句,指定表名(MyGuests)和要插入的字段及值。如果插入操作成功,`query()`方法将返回`TRUE`,反之则返回`FALSE`,我们可以根据返回值判断操作是否成功,并显示相应的信息...

    SQL 注入攻击1.pdf

    例如,如果某个Web应用只需要读取数据,就不应赋予其修改或删除数据的权限。 在错误处理方面,开发者应尽量避免向用户显示详细的数据库错误信息,因为这些信息可能被攻击者利用来进一步探测系统的漏洞。相反,应该...

    mysql 判断记录是否存在方法比较

    在MySQL数据库操作中,判断记录是否存在是常见的需求,特别是在编程时需要验证某个特定条件的数据是否已存在于表中。本文将探讨两种常用的SQL方法,并对比它们的性能和适用场景。 首先,传统的判断方法是通过`...

Global site tag (gtag.js) - Google Analytics