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

/**
* 更改狀態
* 修改某表某字段根據某條件
* @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 );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值