php学习笔记(六)

2019-08-17  本文已影响0人  dev_winner

PHP异常处理

// 常用的属性
message 异常消息内容
code 异常代码
file 抛出异常的文件名
line 抛出异常在该文件的行数
// 常用的方法
getTrace 获取异常追踪信息
getTraceAsString 获取异常追踪信息的字符串
getMessage 获取出错信息
<?php
class MyException extends Exception {
    function getInfo() {
        return '自定义错误信息';
    }
}
try {
    throw new MyException('error');
} catch(Exception $e) {
    echo $e->getInfo().'<br>';
    echo $e->getMessage();
}
<?php
try {
    throw new Exception('wrong');
} catch(Exception $ex) {
    echo 'Error:'.$ex->getMessage().'<br>';
    echo $ex->getTraceAsString().'<br>';
}
echo '异常处理后,继续执行其他代码';
<?php
try {
    throw new Exception('wrong');
} catch (Exception $ex) {
    $msg = 'Error:' . $ex->getMessage() . "\n";
    $msg .= $ex->getTraceAsString() . "\n";
    $msg .= '异常行号:' . $ex->getLine() . "\n";
    $msg .= '所在文件:' . $ex->getFile() . "\n";
    //将异常信息记录到日志中PHP异常处理之
    file_put_contents('error.log', $msg);
}
/*
error.log文件中的内容 
Error:wrong
#0 {main}
异常行号:3
所在文件:D:\PHP实战\php_demo01\src\p_test02.php
*/

PHP操作数据库

$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
$link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password', 'mysql_database');
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
<?php
// mysql数据库连接,需要指定数据库的地址,用户名及密码
$link = mysql_connect('127.0.0.1', 'root', '123') or die('数据库连接失败');
// 选择一个数据库
mysql_select_db('mysql');
// 设置当前连接使用的字符编码为utf-8
mysql_query("set names 'utf8'");
// 采用mysql_query加sql语句的形式向数据库发送查询指令
$result = mysql_query('select * from user limit 1');
$row = mysql_fetch_assoc($result);
print_r($row);
// 从结果集中取出一条记录
$row = mysql_fetch_array($res);
var_dump($row);

1、mysql_fetch_array 从结果集取出一行数组作为关联数组索引数组; 可通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标;即可通过设定参数MYSQL_NUM只获取数字索引数组,等同于mysql_fetch_row()函数,若设定参数为MYSQL_ASSOC,则只获取关联索引数组,等同于mysql_fetch_assoc()函数。
2、mysql_fetch_row 从结果集取出一行数组作为数字索引数组
3、mysql_fetch_assoc 从结果集取出一行数组作为关联索引数组

$row = mysql_fetch_row($result);
$row = mysql_fetch_array($result, MYSQL_NUM); //索引数组
$row = mysql_fetch_assoc($result);
$row = mysql_fetch_array($result, MYSQL_ASSOC); // 

4、若要获取数据集中的所有数据,可以通过循环来遍历整个结果集

$data = array();
while ($row = mysql_fetch_array($result)) { // 获取下一条数据
    $data[] = $row;
}
<?php
$link1 = mysql_connect('127.0.0.1', 'root', '');
$link2 = mysql_connect('127.0.0.1', 'root', '', true); //开启一个新的连接
$res = mysql_query('select * from user limit 1', $link1); //从第一个连接中查询数据
$sql = "insert into col(name) values('李四')";
mysql_query($sql); //执行插入语句
$uid = mysql_insert_id();
<?php
$name = '李四';
$age = 18;
$class = '高三一班';
$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";
mysql_query($sql); //执行插入语句
<?php
$page = 2;
$n = 2;
$m = ($page - 1) * $n;
$sql = "select * from user limit $m, $n";
$result = mysql_query($sql);
//循环获取当前页的数据
$data = array();
while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}
<?php
$link = mysql_connect($host, $user, $pass);
mysql_close($link);
上一篇下一篇

猜你喜欢

热点阅读