php连接数据库,php连接mysql并查询的几种方式,PHP PDO连接以及预处理

PHP连接数据库 面向过程

$config = [
'host'=>'127.0.0.1', //数据库地址
'name'=>'test', //库名
'user'=>'root', //数据库用户名
'pass'=>'root' //数据库密码
];
$db = mysqli_connect($config['host'],$config['user'],$config['pass'],$config['name']);
if(!$db)
{
die('数据库连接失败,请检查配置信息:' . mysqli_connect_error());
}
//设置数据库编码格式 或者说指定了客户端和服务器之间传递字符的编码规则为UTF8
mysqli_query($db,"set names utf8");
//进行数据查询 比如我要查询user表内所有用户的Id,name
//封装一下sql语句
$sql = 'select Id,name form user';
//把查询结果放到变量里面 或者说把查询成功后返回的资源标识符放到变量 $row
$row = mysql_query($db,$sql);
//判断是否为空,为空则查询失败
if(empty($row))
{
die("查询数据失败");
}
//判断查询结果是否为0条
if(mysqli_num_rows($row) > 0)
{
//把查询结果打印出来
while($row = mysqli_fetch_assoc($result))
{
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}

}

PHP连接数据库  面向对象

$config = [
'host'=>'127.0.0.1', //数据库地址
'name'=>'test', //库名
'user'=>'root', //数据库用户名
'pass'=>'root' //数据库密码
];
//连接数据
$db = new mysqli($config['host'],$config['user'],$config['pass'],$config['name']);
//判断数据库是否连接失败 
if($db->errno > 0)
{
die("数据库连接失败" . $db->error);
}
//如上面那个 写sql语句
$sql = "select Id,name form user";
//把查询结果放到变量里
$con = $db->query($sql);
//判断查询结果是否为0
if($con->num_rows >0)
{
//打印查询结果
 while($row = $con->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
}

PHP连接数据 PDO以及预处理

echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
 //定义一个类,方便一会打印
class TableRows extends RecursiveIteratorIterator {
    function __construct($it) { 
        parent::__construct($it, self::LEAVES_ONLY); 
    }
    function current() {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
    }
    function beginChildren() { 
        echo "<tr>"; 
    } 
    function endChildren() { 
        echo "</tr>" . "\n";
    } 
} 
 
$servername = "127.0.0.1"; //数据库地址
$username = "root"; //用户名
$password = "root"; //数据库密码
$dbname = "test"; //数据库库名
//使用异常处理来获取错误信息
try {
//先new PDO类并把数据库配置传入进去
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
//设置错误级别
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//把sql语句传入
    $stmt = $conn->prepare("SELECT Id,name FROM user"); 
//执行
    $stmt->execute();
    // 设置结果集为关联数组
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
//通过foreach 和RecursiveIteratorIterator 把查询结果给打印出来
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
        echo $v;
    }
}
catch(PDOException $e) {
//如果捕捉到错误就打印出错误信息
    echo "PDO错误: " . $e->getMessage();
}
$conn = null;
echo "</table>";
posted @ 2020-01-14 19:39  Death-Satan  阅读(555)  评论(0编辑  收藏  举报