【PHP PDO】纯PHP(不使用框架)下 Mysql PDO 使用方法小记

1 配置信息

$config = array(
	'db'	=> array(
		'host'		=> '127.0.0.1',
		'user'		=> 'root',
		'pass'		=> '',
		'db'		=> 'test_db',
		'dns'       => 'mysql:dbname=test_db;host=127.0.0.1;charset=utf8'
	)
)

分别配置数据库链接,用户名,密码,库,dns信息(包括数据库名,数据库链接ip,以及字符集)

注意:如果不设置字符集,即使数据库已经设置了utf8,存入数据库的中文数据仍可能为乱码(需要保持代码、数据库设置、链接数据库时的字符集都保持为utf8)


2 链接数据库

try {
    $db = new PDO($config['db']['dns'], $config['db']['user'], $config['db']['pass']);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
	exit;
}

3.1 查询

// 查询  
$sql1 = "SELECT * FROM tbl_test1 WHERE condition1 = :condition1 and condition2 = :condition2";  
$sql_data1 = Array(  
	":condition1" => 1,  
	":condition2" => "abc"  
);  
$sth1 = $db->prepare($sql1);  
$sth1->execute($sql_data1); 

// 获取一条  
$result1 = $sth1->fetch(PDO::FETCH_ASSOC);  
// 获取所有  
// $result1 = $sth1->fetchAll(PDO::FETCH_ASSOC);  
  
// 判断是否成功  
if($result1){  
	// 查询成功  
}else{  
	// 查询失败  
}

3.2 更新

// 更新  
$sql2 = "UPDATE tbl_test1 SET `key1` = :val1, `key2` = :val2 WHERE  condition1 = :condition1 and condition2 = :condition2";  
$sql_data2 = Array(  
	":val1" => 1,  
	":val2" => "hello",  
	":condition1" => 1,  
	":condition2" => "abc"  
);  
$sth2 = $db->prepare($sql2);  
$sth2->execute($sql_data2);  
  
// 判断是否成功  
if($sth2->rowCount() >0){  
	// 更新成功  
}else{  
	// 更新失败  
}  

3.3 插入

// 插入  
$sql3 = "INSERT INTO tbl_test1 (`key1`,`key2`,`key3`,`key4`,`key5`) VALUES ( :val1 , :val2 , :val3 , :val4 , :val5 )";  
$sql_data3 = Array(  
	"val1" => 1,  
	"val2" => "hello",  
	"val3" => 100.25,  
	"val4" => "随便写写"  
	"val5" => "2015-10-30"  
);  
$sth3 = $db->prepare($sql3);  
$result3 = $sth3->execute($sql_data3);  
  
// 判断是否成功  
if($result3){  
	// 插入成功  
	// 最新插入的数据的自增长id  
	// $db->lastInsertId();  
}else{  
	// 插入失败  
	
}  


转载于:https://www.cnblogs.com/snow-finland/p/5506112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自主封装的PHP ORM框架,面向对象的PDO数据库操作,API框架,支持Get/Post/Put/Delete多种请求方式。 代码示例: <?php use Models\User; require '../application.php'; require '../loader-api.php'; //适合查询,如:获取用户列表或者单个用户信息 execute_request(HttpRequestMethod::Get, function() { $action = request_action(); //判断是否存在 if ($action == 1) { list($type, $value) = filter_request(array( request_int('type', 1, 2, 3), //1.用户名 2.邮箱 3.手机号 request_string('value'))); $type_field_map = array( 1 => User::$field_username, 2 => User::$field_email, 3 => User::$field_phone ); if ($type == 2 && !is_email($value) || $type == 3 && !is_mobilephone($value)) { die_error(USER_ERROR, $type_field_map[$type]['name'] . '格式无效'); } $user = new User(); $user->set_where_and($type_field_map[$type], SqlOperator::Equals, $value); $result = $user->exists(create_pdo()); echo_result($result ? 1 : 0); //存在返回1,不存在返回0 } //查询单条信息 if ($action == 2) { list($userid) = filter_request(array( request_userid())); //查询单条数据 $user = new User($userid); //set_query_fields可以指定查询字段,下面两种写法均可 //$user->set_query_fields('userid, username, email'); //$user->set_query_fields(array(User::$field_userid, User::$field_username, User::$field_email)); //还可设置where条件进行查询 //$user->set_where_and(User::$field_status, SqlOperator::Equals, 3); //$user->set_where_and(User::$field_truename, SqlOperator::IsNullOrEmpty); //$user->set_where_and(User::$field_age, SqlOperator::In, array(27, 29)); //$user->set_where_and(User::$field_regtime, SqlOperator::LessThan, '-6 month'); //创建数据库连接 $db = create_pdo(); $result = $user->load($db, $user); //也可以用Model类的静态方法 //$result = Model::load_model($db, $user, $user); if (!$result[0]) die_error(PDO_ERROR_CODE, '获取用户信息时数据库错误'); if (!$user) di

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值