使用PDO创建MYSQL数据库

PDOPHP Data ObjectPHP数据对象的简称,它是与PHP5.1版本一起发布的,目前支持的数据库包括FirebirdFreeTDSInterbaseMySQLMS SQL ServerODBCOraclePostgreSQLSQLiteSybase。当操作不同数据库时只需修改PDO中的DSN(数据库源),即可使用PDO统一接口进行操作

使用PDO扩展连接数据库实例化PDO,同时传递数据库连接参数

PDO::__construct ( string $dsn[, string $username [, string $password [, array $driver_options]]] )

参数$dsn用于表示数据源名称,包括PDO驱动名、主机名、端口号、数据库名称。

参数$username表示用户名。

参数$passwd表示密码。

注意:

在使用PDO连接数据库时,需要了解以下两点:

数据源中的 PDO 驱动名即要连接的数据库服务器类型,如 mysql oracle 等。
数据源中的端口号和数据库的位置可互换。
 
 

连接数据库:

<?php
$dsn="mysql:host=localhost;dbname=school";//如果要更改数据库   只需要修改前面驱动就可以了,如将mysql换成oracle
//$dsn="mysql:host=localhost;dbname=school;charset=utf8";//如果要更改数据库   只需要修改前面驱动就可以了,如将mysql换成oracle

try{
	//第四个参数  设置相关参数
	$options=array(PDO::MYSQL_ATTR_INIT_COMMAND=>"set names 'utf8'");
	$pdo=new PDO($dsn,"root","123456",$options);//如果成功返回pdo对象  否则抛出一个异常
	var_dump($pdo);//object(PDO)#1 (0) { }
	
}catch(PDOException $e){//捕获异常
	echo $e->getMessage();//显示异常信息
}
?>

执行sql语句:

<?php
$dsn="mysql:host=localhost;dbname=school";//如果要更改数据库   只需要修改前面驱动就可以了,如将mysql换成oracle
//$dsn="mysql:host=localhost;dbname=school;charset=utf8";//如果要更改数据库   只需要修改前面驱动就可以了,如将mysql换成oracle

try{
	//第四个参数  设置相关参数
	$options=array(PDO::MYSQL_ATTR_INIT_COMMAND=>"set names 'utf8'");
	$pdo=new PDO($dsn,"root","123456",$options);//如果成功返回pdo对象  否则抛出一个异常
	$sql="insert into websites values(null,'京东3','https://www.jingdong.com',1,'CN');";
	/*//第一种方法
	if($pdo->query($sql)){//执行sql语句
		echo "添加成功";
		echo  "proid是:".$pdo->lastInsertId();//插入最近记录的id
	}else{
		echo "添加失败";
	}*/
	
	//第二种方法
	if($pdo->exec($sql)){
		echo "添加成功";
		echo  "proid是:".$pdo->lastInsertId();//插入最近记录的id
	}else{
		echo "添加失败";
	}
	//query()和exec()都可以   
	//一般执行查询类语句:query()
	//操作类语句语句:exec()	
}catch(PDOException $e){//捕获异常
	echo $e->getMessage();//显示异常信息
}
?>

预处理:

<?php
$dsn="mysql:host=localhost;dbname=school";//如果要更改数据库   只需要修改前面驱动就可以了,如将mysql换成oracle
//$dsn="mysql:host=localhost;dbname=school;charset=utf8";//如果要更改数据库   只需要修改前面驱动就可以了,如将mysql换成oracle

try{
	//第四个参数  设置相关参数
	$options=array(PDO::MYSQL_ATTR_INIT_COMMAND=>"set names 'utf8'");
	$pdo=new PDO($dsn,"root","123456",$options);//如果成功返回pdo对象  否则抛出一个异常
	//预处理   
	//通过命名参数占位符的方式
	//$sql="insert into websites values(null,:name,:url,:aleax,:country);";
	//$stmt=$pdo->prepare($sql);//生成一个预处理语句   返回一个PDOStatement对象
	//方法1
	//绑定语句
	/*$name="阿里";
	$url="https://www.ali.com";
	$aleax=1;
	$country="USA";
	$stmt->bindParam(":name",$name);//必须先定义变量再使用参数
	$stmt->bindParam(":url",$url);
	$stmt->bindParam(":aleax",$aleax);
	$stmt->bindParam(":country",$country);
	//执行
	var_dump($stmt->execute());//bool(true)*/
	//方法2
	//绑定语句
	//$array=array(":name"=>"QQ",":url"=>"https://www.qq.com",":aleax"=>'2',":country"=>'CN');
	//var_dump($stmt->execute($array));//bool(true)
	
	//通过?占位符的方式
	$sql="insert into websites values(null,?,?,?,?);";
	$stmt=$pdo->prepare($sql);//生成一个预处理语句   返回一个PDOStatement对象
	//绑定语句
	$name="阿里22";
	$url="https://www.ali.com";
	$aleax=1;
	$country="USA";
//	$stmt->bindParam(1,$name);//必须先定义变量再使用参数
//	$stmt->bindParam(2,$url);
//	$stmt->bindParam(3,$aleax);
//	$stmt->bindParam(4,$country);
//	//执行
//	var_dump($stmt->execute());
	
	//方法2
	$array=array("QQ","https://www.qq.com",'2','CN');
	var_dump($stmt->execute($array));
	
	
}catch(PDOException $e){//捕获异常
	echo $e->getMessage();//显示异常信息
}



?>

 

 


版权声明:本文为Doulvme原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。