Mysql PDO返回的结果中的数组到字符串转换错误

Mysql PDO返回的结果中的数组到字符串转换错误,mysql,string,pdo,Mysql,String,Pdo,我得到了错误,因为我从MySQL转换到PDO,在我更改为PDO后,大部分行都已解决,但其中一个与字符串有关。。。我是 得到错误说 第573行C:header.php中的数组到字符串转换 我得到的错误是 <?php if($msg_cnt>0) { echo '('.$msg_cnt.')'; }?></i></a> 请参阅最后两行的代码。。。我怎样才能解决这个问题 <?php if(!isset($_SESSION['account_type

我得到了错误,因为我从MySQL转换到PDO,在我更改为PDO后,大部分行都已解决,但其中一个与字符串有关。。。我是

得到错误说

第573行C:header.php中的数组到字符串转换

我得到的错误是

<?php if($msg_cnt>0) { echo '('.$msg_cnt.')'; }?></i></a>

请参阅最后两行的代码。。。我怎样才能解决这个问题

<?php if(!isset($_SESSION['account_type'])){?><a href="#"><?php }?>


            <?php if(isset($_SESSION['account_type'])){ 

            $msg_cnt_q = $conn ->query("select * from messages where receiver_id='".$_SESSION['user_id']."' and receiver_read_status='unread'");
            $msg_cnt = $msg_cnt_q->fetch(PDO::FETCH_ASSOC);?>


            <a href="http://www.xxxxxx/inbox.php">

            <i class="fa fa-bell fa-lg fa-color" style="padding-top:17px;">

            <?php if($msg_cnt>0) { echo '('.$msg_cnt.')'; }?></i></a>

            <?php }?>


感谢您的时间……

当您试图打印一个数组,其中应该有一个标量值时,该错误是一个普通的PHP错误。类似于将值与其他字符串连接

PDO函数
fetch()
返回包含一行数据的数组,而不是结果集中的行数

PDO提供了一个不同的函数
rowCount()
,因此您可以知道有多少行

$row = $msg_cnt_q->fetch(PDO::FETCH_ASSOC);
$msg_cnt = $msg_cnt_q->rowCount();

当您试图打印一个数组,其中应该有一个标量值时,该错误是一个普通的PHP错误。类似于将值与其他字符串连接

PDO函数
fetch()
返回包含一行数据的数组,而不是结果集中的行数

PDO提供了一个不同的函数
rowCount()
,因此您可以知道有多少行

$row = $msg_cnt_q->fetch(PDO::FETCH_ASSOC);
$msg_cnt = $msg_cnt_q->rowCount();
rowCount()。最好使用
SELECT COUNT(*)
query@Barmar,
rowCount()
不能保证在所有PDO驱动程序中都能工作,但它是在MySQL驱动程序中实现的。虽然如果将
MYSQL\u ATTR\u USE\u BUFFERED\u QUERY
设置为false,您必须首先获取所有行,然后
rowCount()
才能返回正确的值。
rowCount()
不能保证使用
SELECT
查询。最好使用
SELECT COUNT(*)
query@Barmar,
rowCount()
不能保证在所有PDO驱动程序中都能工作,但它是在MySQL驱动程序中实现的。尽管如果将
MYSQL\u ATTR\u USE\u BUFFERED\u QUERY
设置为false,您必须首先获取所有行,然后
rowCount()
才能返回正确的值。