在学习 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);
这样就没有报错了!
我们可以用一下办法来测试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(); //打印异常信息 }
如果打开一个文件,文件名为中文,如果系统编程和当前文档编码不一致,会导致文件找不到无法打开,解决方法是用 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);
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 转码函数进行转码。
include 和 require 的区别
更多内容可参考:PHP 中 include 和 require 的区别详解
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
599PHP MySQL 插入数据
在学习 PDO 创建数据表的时候 , 我遇到这个报错。
最后发现问题在这里:
因为我写代码的习惯是" = "两边都加上空格 , 但是在这里 dbname = $dbname 的等号两边却不可以存在空格
所以正确的写法应该是 dbname=$dbname:
这样就没有报错了!
598PHP MySQL 连接
我们可以用一下办法来测试PHP的MySQL数据库的连接。
使用函数 parse_ini_file() 解析配置文件 config.ini 来获得数据库连接参数,然后使用 new 关键字对 mysqli 类进行实例化,最后使用函数 mysqli_connect_errno() 来判断是否成功连接上了 MySQL 数据库,实现该过程的代码如下所示:
597PHP 文件
如果打开一个文件,文件名为中文,如果系统编程和当前文档编码不一致,会导致文件找不到无法打开,解决方法是用 iconv 函数编码转换成一致,如下:
用相对路径打不开子目录中的文件时,可用绝对路径打开,如下:
596PHP 文件
PHP对逗号分隔符文件(*.csv)的处理。
当如果你需要处理的数据比较少时可以使用csv文件(这是一类文本文件)存储数据更加便利。
比如在php代码同目录下有一个a.csv文件,内容如下:(注意逗号是半角英文)
小王,小红,小明,小凡
php代码如何:
注意:CSV文本编码必须和HTML的编码相同,否则用php写到HTML中,用户会看到乱码。也可以使用 iconv 转码函数进行转码。
595PHP 包含
include 和 require 的区别
更多内容可参考:PHP 中 include 和 require 的区别详解