PHP连接数据库实验
- 格式:doc
- 大小:51.00 KB
- 文档页数:7
实验项目:数据库技术及其应用
实验类型:设计
实验课时:4
实验目的:研究数据库技术及其应用
实验方案:
1 下载安装配置PHP集成安装包
安装最新的Visual C++运行库。从
/phpstudy/phpStudy2017.zip 下载phpStudy2017。解压缩后安装。选择最新的PHP版本。设置web服务器根文件夹。修改MySQL 用户名和密码。
2 研究通过mysqli访问数据库
创建一个php文件,内容如下。分析页面的输出。
$db =mysqli_connect('localhost', 'root', 'root','mysql')or die("连接数据库失败");
if(!mysqli_query($db,"DROP DATABASE IF EXISTS a"))die("删除数据库失败");
if(!mysqli_query($db,"CREATE DATABASE IF NOT EXISTS a"))die("创建数据库失败");
if(!mysqli_select_db($db, "a"))die("选择数据库失败");
if(!mysqli_query($db,"DROP TABLE IF EXISTS user"))die("删除表失败");
$sql="CREATE TABLE IF NOT EXISTS user(
id SERIAL,
un VARCHAR(50) NOT NULL UNIQUE,
pw VARCHAR(50) NOT NULL DEFAULT 123456,
rt INT(3) UNSIGNED NOT NULL DEFAULT 0
)";
if(!mysqli_query($db,$sql))die("创建表失败");
if(!$result =mysqli_query($db,"INSERT user(un) VALUES('u1'),('u2'),('张三')"))die("插入记录失败");
echo("插入记录数:".mysqli_affected_rows($db).'
');
if(!$result=mysqli_query($db,"SELECT * FROM user"))die("查询失败");
echo("查询结果行数:".mysqli_num_rows($result).'
');
echo("查询结果列数:".mysqli_num_fields($result).'
');
echo("查询结果:
");
while($field=mysqli_fetch_field($result))echo("$field->name\t");//字段名
while($row=mysqli_fetch_row($result)){
echo "
";
foreach($row as $col)echo("$col\t");//行
}
mysqli_free_result($result);//释放查询结果
mysqli_close($db);//关闭数据库连接
?>
首先连接数据库,如果连接失败,页面弹出连接数据库失败,然后删除数据库a,如果删除失败,页面弹出删除数据库失败,接着重新创建数据库a,如果创建失败,页面弹出创建失败,然后选择a作为默认数据库,如果失败则弹出选择数据库失败,接着删除数据库a中的user表,如果删除失败则弹出删除表失败,接着在数据库a中创建数据表user,创建失败则弹出创建表失败,user表中包含四个字段:ID,un,pw,rt,然后在user的un字段下插入u1,u2,张三三个元素,插入失败则弹出插入记录失败,然后输出3,表示输出了创建的记录数,然后查询user中的所有数据,查询失败则弹出查询失败,然后页面输出了3和4,输出了表的行和列,然后将数据赋给$field,在输出查询出来的字段名,以表格形式输出数据库中的数据。
3 研究通过PDO访问mysql数据库
创建一个php文件,内容如下。分析页面的输出。
$dsn = 'mysql:dbname=mysql;host=127.0.0.1';
$user = 'root';
$password = 'root';
try {
$pdo = new PDO($dsn, $user, $password);
$pdo->exec("DROP DATABASE IF EXISTS a");//删除数据库
$pdo->exec("CREATE DATABASE IF NOT EXISTS a");//创建数据库
$pdo->exec("USE a");//选择数据库;
$pdo->exec("DROP TABLE IF EXISTS user");//删除表
$sql="CREATE TABLE IF NOT EXISTS user(
id SERIAL,
un VARCHAR(50) NOT NULL UNIQUE,
pw VARCHAR(50) NOT NULL DEFAULT 123456,
rt INT(3) UNSIGNED NOT NULL DEFAULT 0
)";
$pdo->exec($sql);//创建表
$row =$pdo->exec("INSERT user(un) VALUES('u1'),('u2'),('张三')");//插入记录
echo("插入记录数:".$row.'
');
$PDOStatement=$pdo->query("SELECT * FROM user");//查询
echo("查询结果行数:".$PDOStatement->rowCount().'
');
echo("查询结果列数:".$PDOStatement->columnCount().'
');
echo("查询结果:
");
$f=0;
while($row=$PDOStatement->fetch()){