php数据库连接三种方法:PDO连接的两种方法与php一般连接的方法,以及防止乱码
/*作者:gaoming13*/
PDO数据库连接格式:
define('DSN_dbname','gm_contact');
define('DSN_user','root');
define('DSN_pwd','pwd');
$dsn='mysql:host=localhost;dbname='.DSN_dbname;
/*第一种:如果只执行一次查询效果较好,但无自动转义,需手动转义*/
try{
/*用户名:DSN_user;密码:DSN_pwd;Option:防止乱码*/
$dbh=new PDO($dsn,DSN_user,DSN_pwd,array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"));
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='select * from contacters';
$stmt = $dbh->prepare($sql);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['id'] . "\t";
echo $row['name'] . "\t";
echo $row['telephone'] . "<br/>";
}
echo '数据库已连接! 当前数据库为:'.DSN_dbname;
echo '<br/><hr/>';
}catch(PDOException $e)
{
echo 'Connection failsed: '.$e->getMessage();
}
/*第二种:若执行多次查询效果较好,可自动转义*/
try{
/*用户名:DSN_user;密码:DSN_pwd;Option:防止乱码*/
$dbh=new PDO($dsn,DSN_user,DSN_pwd,array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"));
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='select * from contacters';
$stmt = $dbh->prepare($sql);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['id'] . "\t";
echo $row['name'] . "\t";
echo $row['telephone'] . "<br/>";
}
echo '数据库已连接! 当前数据库为:'.DSN_dbname;
echo '<br/><hr/>';
}
catch(PDOException $e)
{
echo 'Connection failsed: '.$e->getMessage();
}
/*一般php数据库连接格式*/
$link=mysql_connect("localhost","root","pwd") or die("数据库连接失败!".mysql_error());
if(mysql_select_db("users",$link)){
mysql_query("SET NAMES 'utf8'"); //防止乱码
echo "<b>Connection Ok!</b>";
}
else
echo "Connection False!".mysql_error();
echo "<hr/>";