先展示出出错的代码: 当查找的内容为空时候 PDO数据就是不显示错误
<?php
function perform_query($query){
try{ // try可能引发异常的语句;
$db=new PDO("mysql:host=localhost;dbname=world","root","");//NEW创建对象 PDO参数:数据库名称 服务器 用户名 密码
$row =$db->query($query);//query查询数据库,返回匹配行 PDO的方法
return $row;//查询的结果返回的是特殊类型的对象PDOStatement
}
catch(PDOException $ex){//catch处理错误的语句
?>
<p>对不起,数据库错误出现</p>
<?php
return NULL;//断开是数据库链接
}
}
//implode将数组以指定字符串转成字符串
// 预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值
//sql语句
//选择不重复的国家名称 升序
//从国家表单和语言表单的笛卡尔积中寻找 且on条件是国家的code和语言的code相同的合并
//过滤出 表的州与键盘输出的州相同的+in表示允许多个值 语言是可以多选的 表的语言与键盘输入的语言相同的 官方是允许的
//ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序---缺省是升序
$countries_query = "SELECT DISTINCT c.name
FROM countries c JOIN languages l
ON c.code = l.country_code
WHERE
l.official = 'T'
AND c.continent ='Europe'
AND l.language ='Chinese'
ORDER BY c.name";
$rows = perform_query($countries_query);//查询到的国家的PDOStatement类型 American Chinese Europe
if($rows){//->rowCount() > 0
foreach($rows as $row){
echo $row["name"];
echo "<br>";
}
}else{
echo "没找到";
}
?>
问题这里:我改成 PDO内置函数 rowCount查询结果中的行数就可以了
哪位大佬可以解释一下,谢谢