PHP 教程 在线

599PHP MySQL 插入数据

在学习 PDO 创建数据表的时候 , 我遇到这个报错。

SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

最后发现问题在这里:

$conn = new PDO("mysql:host = $servername;dbname = $dbname",$username,$password);

因为我写代码的习惯是" = "两边都加上空格 , 但是在这里 dbname = $dbname 的等号两边却不可以存在空格

所以正确的写法应该是 dbname=$dbname

$conn = new PDO("mysql:host = $servername;dbname=$dbname",$username,$password);

这样就没有报错了!

598PHP MySQL 连接

我们可以用一下办法来测试PHP的MySQL数据库的连接。

使用函数 parse_ini_file() 解析配置文件 config.ini 来获得数据库连接参数,然后使用 new 关键字对 mysqli 类进行实例化,最后使用函数 mysqli_connect_errno() 来判断是否成功连接上了 MySQL 数据库,实现该过程的代码如下所示:

try{
    //解析config.ini文件
    $config = parse_ini_file(realpath(dirname(__FILE__) . '/config/config.ini'));
    //对mysqli类进行实例化
    $mysqli = new mysqli($config['host'], $config['username'], $config['password'], $config['dbname']);   
    if(mysqli_connect_errno()){    //判断是否成功连接上MySQL数据库
        throw new Exception('数据库连接错误!');  //如果连接错误,则抛出异常
    }else{
        echo '数据库连接成功!';   //打印连接成功的提示
    }
}catch (Exception $e){        //捕获异常
    echo $e->getMessage();    //打印异常信息
}

597PHP 文件

如果打开一个文件,文件名为中文,如果系统编程和当前文档编码不一致,会导致文件找不到无法打开,解决方法是用 iconv 函数编码转换成一致,如下:

$fpath=iconv('UTF-8','GB2312',"题库.csv");
$file=fopen($fpath,"r") or exit("无法打开文件!");
//此处省略相关操作
fclose($file);    

用相对路径打不开子目录中的文件时,可用绝对路径打开,如下:

$file=fopen(dirname(__FILE__).'\\files\\tk.csv',"r") or exit("无法打开文件!");   
//此处省略相关操作
fclose($file);

596PHP 文件

PHP对逗号分隔符文件(*.csv)的处理。

当如果你需要处理的数据比较少时可以使用csv文件(这是一类文本文件)存储数据更加便利。

比如在php代码同目录下有一个a.csv文件,内容如下:(注意逗号是半角英文)

小王,小红,小明,小凡

php代码如何:

<?php
$fh=fopen("a.csv","r");//这里我们只是读取数据,所以采用只读打开文件流
$arr=fgetcsv($fh);//这个函数就是读取CSV文件的函数,他把文本读入后转为数组存储在$arr中
fclose($fh);
foreach($arr as $key=>$value){echo $value;}//循环输出所有的值
?>

注意:CSV文本编码必须和HTML的编码相同,否则用php写到HTML中,用户会看到乱码。也可以使用 iconv 转码函数进行转码。

595PHP 包含

include 和 require 的区别

  • require 一般放在 PHP 文件的最前面,程序在执行前就会先导入要引用的文件;
  • include 一般放在程序的流程控制中,当程序执行时碰到才会引用,简化程序的执行流程。
  • require 引入的文件有错误时,执行会中断,并返回一个致命错误;
  • include 引入的文件有错误时,会继续执行,并返回一个警告。

更多内容可参考:PHP 中 include 和 require 的区别详解