/**
* 更改狀態
* 修改某表某字段根據某條件
* @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表情,可以通过ALTER TABLE命令修改字段的字符集为`utf8mb4`。例如: ```sql ALTER TABLE `article` MODIFY COLUMN `content` MEDIUMTEXT CHARACTER ...
- **修改表(ALTER TABLE)**:可以添加、删除或修改表的列,如在Z表中增加一个日期字段S_entrance。 - **创建索引(CREATE INDEX)**:为提高查询效率,可以在表的特定列上创建索引。例子中创建了一个唯一索引...
要获取某个表的列信息,包括列名、数据类型和备注,有几种方法: - `DESCRIBE 表名;` 或 `SHOW COLUMNS FROM 表名;` 或 `DESC 表名;` 这些命令会显示表的列结构,包括列名、数据类型、是否可为空、默认值以及额外...
2. **修改购买数量**:`change_num`方法允许用户更改购物车中某个商品的数量。它接收商品ID和新的数量,然后更新对应记录的`num`字段。 3. **清空购物车**:`clear_cart`方法将所有属于当前用户的购物车记录删除,...
表由行(记录)和列(字段)组成,每个列都有特定的数据类型。创建表的SQL命令如下: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(255)...
3. **更新(Update)**: 更新现有记录涉及到用户编辑已有数据,然后提交更改。在PHP中,这通常通过GET或POST请求来实现,请求中包含要更新的记录的ID以及新值。服务器端的PHP脚本会使用`UPDATE`语句根据这些信息修改...
2. **获取表单数据**:在前端获取表单数据并提交到后端时,可以通过如下方式获取表单的`action`属性以及表单字段值: ```javascript var $action = $('#login_form').attr('action'); var $username = $('#...
在创建表或操作数据时,选择合适的数据类型至关重要,因为它直接影响到存储效率和查询性能。 在实际开发中,我们通常会使用像phpMyAdmin这样的工具来管理MySQL数据库,它提供了一个友好的图形用户界面,方便进行...
数据库设计通常包括创建数据表结构,如`messages`表,包含字段如`id`(主键)、`name`、`content`和`timestamp`。 在使用须知.txt文件中,可能包含了关于如何安装、配置和运行这个实例的说明。这可能包括了以下步骤...
如果要实现自增索引的插入,通常在创建表时,将某个字段设置为主键并赋予AUTO_INCREMENT属性。 创建自增索引字段的MySQL语句通常如下: ```sql CREATE TABLE your_table_name ( id INT NOT NULL AUTO_INCREMENT, ...
创建表时可以指定某个字段为自动增长类型: ```sql create table user ( id int unsigned auto_increment, -- 其他字段定义 primary key (id) ); ``` ### MySQL与PHP集成 尽管提供的文件内容没有直接涉及...
关于数据库设计,通常会有一个"图书"表,包含诸如id(主键)、书名、作者、出版社、ISBN号、出版日期、库存数量等字段。为了保证数据的一致性和完整性,可能会设置一些约束,例如非空约束、唯一约束等。此外,可能...
3. "12662e209ec7644df7ec34f1c5f498c4.txt" 这个文件名看起来像是哈希值,可能是为了标识某个文件或者代码的唯一性,或者记录了代码的某次更改。在开发过程中,开发者常使用哈希值来追踪文件的变化,尤其是在版本...
并发控制是数据库管理中的一个重要部分,目的是为了避免多线程环境下多个事务同时修改数据造成的不一致问题。MySQL提供了两种级别的并发控制:服务器级和存储引擎级。在锁机制上,MySQL支持读锁和写锁,其中读锁是...
- **范围判断标签**: 判断值是否在某个范围内。 - **IF标签**: 条件判断。 - **Present标签**: 判断变量是否存在。 - **Empty标签**: 判断变量是否为空。 - **Defined标签**: 判断变量是否已定义。 - **Assign...
然后,我们构造了一个`INSERT INTO` SQL语句,指定表名(MyGuests)和要插入的字段及值。如果插入操作成功,`query()`方法将返回`TRUE`,反之则返回`FALSE`,我们可以根据返回值判断操作是否成功,并显示相应的信息...
例如,如果某个Web应用只需要读取数据,就不应赋予其修改或删除数据的权限。 在错误处理方面,开发者应尽量避免向用户显示详细的数据库错误信息,因为这些信息可能被攻击者利用来进一步探测系统的漏洞。相反,应该...
在MySQL数据库操作中,判断记录是否存在是常见的需求,特别是在编程时需要验证某个特定条件的数据是否已存在于表中。本文将探讨两种常用的SQL方法,并对比它们的性能和适用场景。 首先,传统的判断方法是通过`...