当前位置:文档之家› PHP连接数据库实验

PHP连接数据库实验

实验项目:数据库技术及其应用实验类型:设计实验课时:4实验目的:研究数据库技术及其应用实验方案:1 下载安装配置PHP集成安装包安装最新的Visual C++运行库。

从/phpstudy/phpStudy2017.zip 下载phpStudy2017。

解压缩后安装。

选择最新的PHP版本。

设置web服务器根文件夹。

修改MySQL 用户名和密码。

2 研究通过mysqli访问数据库创建一个php文件,内容如下。

分析页面的输出。

<?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).'<br/>');if(!$result=mysqli_query($db,"SELECT * FROM user"))die("查询失败");echo("查询结果行数:".mysqli_num_rows($result).'<br/>');echo("查询结果列数:".mysqli_num_fields($result).'<br/>');echo("查询结果:<br/>");while($field=mysqli_fetch_field($result))echo("$field->name\t");//字段名while($row=mysqli_fetch_row($result)){echo "<br/>";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文件,内容如下。

分析页面的输出。

<?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.'<br/>');$PDOStatement=$pdo->query("SELECT * FROM user");//查询echo("查询结果行数:".$PDOStatement->rowCount().'<br/>');echo("查询结果列数:".$PDOStatement->columnCount().'<br/>');echo("查询结果:<br/>");$f=0;while($row=$PDOStatement->fetch()){if($f==0){$f=1;foreach($row as$name=>$value)echo("$name\t");//标题行}echo "<br/>";foreach($row as $value)echo("$value\t");//行}} catch (PDOException $e) {echo '访问数据库失败: ' . $e->getMessage();}?>首先连接数据库,失败则提示访问数据库失败,然后删除数据库a,在创建数据库a,接着选择a作为默认数据库,在a中删除数据表user,接着在数据库a中创建数据表user,user表中包含四个字段:ID,un,pw,rt,然后在user的un字段下插入u1,u2,张三三个元素,然后输出3,表示输出了创建的记录数,然后查询user中的所有数据,然后页面输出了3和4,输出了表的行和列,然后将数据赋给$field,在输出查询出来的字段名,以表格形式输出数据库中的数据。

4 研究预处理语句创建一个php文件,内容如下。

分析页面的输出。

<?phptry {$pdo = new PDO('mysql:host=localhost;dbname=a', 'root', '');$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);//创建表//下面是预处理语句示例$stmt =$pdo->prepare("INSERT user(un,rt) VALUES(:un,:rt)");//预处理语句,:un为命名参数$stmt->bindParam(':un', $un);//将命名参数绑定到变量$stmt->bindParam(':rt', $rt);$un='u4';$rt=2;$stmt->execute();//传递绑定变量,执行预处理语句$stmt->execute(['un'=>'u5','rt'=>1]);//传递数组参数,执行预处理语句$stmt =$pdo->prepare("INSERT user(un,rt) VALUES(?,?)");//预处理语句,?为顺序参数$stmt->bindParam(1, $un);//将顺序参数绑定到变量$stmt->bindParam(2, $rt);$un='u6';$rt=2;$stmt->execute();$stmt->execute(['u7',1]);//预处理语句示例结束$stmt=$pdo->query("SELECT * FROM user");//查询echo("查询结果:<br/>");$f=0;while($row=$stmt->fetch()){if($f==0){$f=1;foreach($row as$name=>$value)echo("$name\t");//标题行}echo "<br/>";foreach($row as $value)echo("$value\t");//行}} catch (PDOException $e) {echo '访问数据库失败: ' . $e->getMessage();}?>?>首先连接数据库,失败则提示访问数据库失败,然后删除数据库a,在创建数据库a,接着选择a作为默认数据库,在a中删除数据表user,接着在数据库a 中创建数据表user,user表中包含四个字段:ID,un,pw,rt,先将数据传递给变量,再用execute传递到数据库中,页面最终以表格形式输出了数据库中的数据,5 设计一个用户登录程序要求将登录检验数据保存在数据库中。

相关主题