华育国际php考试2013,华育国际 春季 PHP面试题终章

1、创建新闻发布系统,库名为cms,表名为article,有如下字段,写出创建表的命令?

Id 文章id

Title 文章标题

Content 文章内容

Category_id 文章分类id

Dateline 时间

set names gbk;

create database cms character set utf8;

use cms;

create table article (

id int primary key auto_increment,#文章id

title varchar(30),#文章标题

content varchar(20),#文章内容

category_id int,#文章分类ID

datetime date#时间

);

2、写一个操作mysql的类,类名为mysqlDB,类中有连接数据库方法connect()和返回数据库查询结果的二维数组的方法getAll();

mysqlDB.class.php

//数据库封装类

classmysqlDB

{

public$conn = NULL;//连接对象

public$rs = NULL;//结果集对象

//连接数据库

private function__construct()

{

$this->conn = mysql_connect("localhost","name","password");

mysql_query("set names utf8");

mysql_select_db("database");

}

//防止克隆对象

private function__clone()

{}

//获得该类的对象(单例模式的)

public static functiongetInstance()

{

static$obj = NULL;

if($obj == NULL)

{

$obj = newmysqlDB();

}

return$obj;

}

//执行select语句,返回:二维数组

public functiongetAll($sql)

{

$result = array();//存储所有记录

$this->rs = mysql_query($sql);

while($row = mysql_fetch_array($this->rs))

{

$result[] = $row;

}

return$result;

}

//执行select语句,返回:一维关联数组

public functiongetRow($sql)

{

$result = NULL;//存储一条记录

$this->rs = mysql_query($sql);

if($row = mysql_fetch_array($this->rs))

{

$result = $row;

}

return$result;

}

//执行insert、update、delete语句,返回:受影响的行数

public functionexec($sql)

{

mysql_query($sql);

$result = mysql_affected_rows($this->conn);

return$result;

}

//释放结果集

public functionfreeResult()

{

mysql_free_result($this->rs);

}

//关闭数据库

public functionclose()

{

mysql_close($this->conn);

}

}

?>

3、用第一题中的表和第二题中的类写出如下操作:显示点击量最多的10条新闻的标题和发布时间。

insert into article values(' ','标题1','内容1','文章分类ID1',now());

insert into article values(' ','标题2','内容2','文章分类ID2',now());

insert into article values(' ','标题3','内容3','文章分类ID3',now());

insert into article values(' ','标题4','内容4','文章分类ID4',now());

insert into article values(' ','标题5','内容5','文章分类ID5',now());

insert into article values(' ','标题6','内容6','文章分类ID6',now());

insert into article values(' ','标题7','内容7','文章分类ID7',now());

insert into article values(' ','标题8','内容8','文章分类ID8',now());

insert into article values(' ','标题9','内容9','文章分类ID9',now());

insert into article values(' ','标题10','内容10','文章分类ID10',now());

insert into article values(' ','标题11','内容11','文章分类ID11',now());

insert into article values(' ','标题12','内容12','文章分类ID12',now());

insert into article values(' ','标题13','内容13','文章分类ID13',now());

select * from article;

header("content-type:text/html;charset=utf-8");

include_once'mysqlDB.class.php';

$sql = "select title,datetime from article limit 10";

$conn = mysqlDB::getInstance();

$result = $conn->getAll($sql);

?>

Insert title here
标题时间

foreach($result as$v){

?>

<?php echo$v['title']?><?php echo$v['datetime']?>

}

?>

4、如果要把article表分成多个表,写出你的大体思路。

create table table2 select * from table1 order by id limit 1,100

create table table3 select * from table1 order by id limit 100,100

create table table4 select * from table1 order by id limit 200,100

5、请写一个函数验证电子邮件的格式是否正确。

[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值