array('number', $attr['timestamp']), 'day_k_date' => array('number', $attr['date']), 'day_k_code' => array('string', $attr['code']), 'day_k_name' => array('string', $attr['name']), 'day_k_open_price' => array('number', $attr['open_price']), 'day_k_close_price' => array('number', $attr['close_price']), 'day_k_highest_price' => array('number', $attr['highest_price']), 'day_k_lowest_price' => array('number', $attr['lowest_price']), 'day_k_amount' => array('number', $attr['amount']), 'day_k_value' => array('number', $attr['value']), 'day_k_increase_price' => array('number', $attr['increase_price']),// 涨跌价 'day_k_increase_ratio' => array('number', $attr['increase_ratio']),// 涨跌幅 'day_k_turnover' => array('number', $attr['turnover']),// 换手率 'day_k_pe_ttm' => array('number', $attr['pe_ttm']), 'day_k_tradable_value' => array('number', $attr['tradable_value']), 'day_k_total_value' => array('number', $attr['total_value']), 'day_k_pb' => array('number', $attr['pb']), 'day_k_pe_dynamic' => array('number', $attr['pe_dynamic']), 'day_k_pe_static' => array('number', $attr['pe_static']), ); return $this->pdo->sqlinsert($this->table_fullname, $param); } /**** * @param $attr * @return mixed *插入当天的数据 */ public function insert($attr){ $param = array ( 'day_k_date' => array('number', strtotime($attr['date'])), 'day_k_code' => array('number', $attr['code']), 'day_k_name' => array('string', $attr['name']), 'day_k_open_price' => array('number', $attr['open_price']), 'day_k_highest_price' => array('number', $attr['highest_price']), 'day_k_lowest_price' => array('number', $attr['lowest_price']), 'day_k_value' => array('number', $attr['value']), 'day_k_amount' => array('number', $attr['amount']), 'day_k_close_price' => array('number', $attr['close_price']), 'day_k_close_price_qfq' => array('number', $attr['close_price_qfq']), 'day_k_increase_price' => array('number', $attr['increase_price']), 'day_k_increase_value' => array('number', $attr['increase_value']), 'day_k_turnover' => array('number', $attr['turnover']), ); $msg=$this->pdo->sqlinsert($this->table_fullname, $param); return $msg; } /*** * @param $attr * @return mixed * day_k的历史数据 */ public function HistoryDayK($attr){ $param = array ( 'day_k_timestamp ' => array('number', $attr['timestamp']), 'day_k_date' => array('number', $attr['date']), 'day_k_code' => array('string', $attr['code']), 'day_k_name' => array('string', $attr['name']), 'day_k_open_price' => array('number', $attr['open_price']), 'day_k_highest_price' => array('number', $attr['highest_price']), 'day_k_lowest_price' => array('number', $attr['lowest_price']), 'day_k_close_price' => array('number', $attr['close_price']), 'day_k_value' => array('number', $attr['value']), 'day_k_amount' => array('number', $attr['amount']), 'day_k_increase_price' => array('number', $attr['increase_price']), 'day_k_increase_ratio' => array('number', $attr['increase_ratio']), ); $msg=$this->pdo->sqlinsert($this->table_fullname, $param); return $msg; } /**** * @param $code * @param $start_date * @param $traceback_days * @param $order * @return array * wanggangtao * 获取最近n天的数据 */ public function stock_recent_days($code,$start_date,$traceback_days,$order,$fq_price) { if($fq_price==1){//前复权 }else{//不复权 //查询语句必须用sql_check_input检查参数 $stock_code = $this->pdo->sql_check_input(array('string', $code)); $sql = "select * from ". $this->table_fullname ." where 1=1 "; $where =" and day_k_code=".$stock_code." and day_k_timestamp <=".$start_date ; $sql.=$where; $orderInfo=" ORDER BY day_k_date desc"; $sql.=$orderInfo; $limit=" limit ".$traceback_days; $sql.=$limit; if($order==1){ $sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date desc "; }else{ $sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date asc"; } } $rs = $this->pdo->sqlQuery($sql); $r = array(); if($rs){ foreach($rs as $key => $val){ $r[$key] = $this->dataToAttr($val); } return $r; }else{ return $r; } } /*** * @param $code * @param $start_date * @param $end_date * @return array * */ public function get_day_k_info($code,$start_date,$end_date,$order_info,$fq_price) { //查询语句必须用sql_check_input检查参数 $stock_code = $this->pdo->sql_check_input(array('string', $code));//类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引 $start_date= $this->pdo->sql_check_input(array('number', $start_date)); $end_date = $this->pdo->sql_check_input(array('number', $end_date)); $fq_price = $this->pdo->sql_check_input(array('number', $fq_price)); if($fq_price==1){//复权 $sql = "select * from ". $this->table_fullname ." where 1=1 "; $where =" and day_k_code=".$stock_code ." and day_k_date>= ".$start_date." and day_k_date<= ".$end_date ; $sql.=$where; $sql="select* from(".$sql.")a left join boniu_day_k_qfq b on a.day_k_code=b.day_k_qfq_code and b.day_k_qfq_date=a.day_k_date"; if($order_info==1) { $order=" order by day_k_date desc"; } else { $order=" order by day_k_date asc"; } $sql.=$order; } else { $sql = "select * from ". $this->table_fullname ." where 1=1 "; $where =" and day_k_code=".$stock_code ." and day_k_date>= ".$start_date." and day_k_date<= ".$end_date ; $sql.=$where; if($order_info==1) { $order=" order by day_k_date desc"; } else { $order=" order by day_k_date asc"; } $sql.=$order; } $rs = $this->pdo->sqlQuery($sql); $r = array(); if($rs){ foreach($rs as $key => $val){ $r[$key] = $this->dataToAttr($val); } return $r; }else{ return $r; } } /**** * @param $code * @param $date * @return array|mixed * 获取股票的某天和当天的数据 * 当获取某天的数据不存在,返回空,当天的数据不存在,返回最近一个交易日的信息 */ public function get_current_day_k($code,$date) { //查询语句必须用sql_check_input检查参数 $stock_code = $this->pdo->sql_check_input(array('string', $code));//类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引 $sql = "select * from ". $this->table_fullname ." where 1=1 "; $where =" and day_k_code=".$stock_code ; if($date==0){//获取的是当天的数据 // $date = (int)(strtotime(date("Y-m-d",time()))); $date=date("Ymd",time()); $where.=" and day_k_date <= ".$date; }else{//获取某一天的数据 $date = $this->pdo->sql_check_input(array('number', $date)); $where.=" and day_k_date =".$date; } $sql.=$where; $order=" order by day_k_date desc limit 1 "; $sql.=$order; $rs = $this->pdo->sqlQuery($sql); $r = array(); if($rs){ foreach($rs as $key => $val){ $r[$key] = $this->dataToAttr($val); } return $r[0]; }else{ return $r; } } } ?>