Php PDO和获取结果(字符串转换)

Php PDO和获取结果(字符串转换),php,pdo,Php,Pdo,目前PDO im也有问题(这没有帮助) 这是我的代码的当前段 > try{ $sql = $conn->prepare(" SELECT Channel_Location FROM channels) ORDER BY RAND() limit 5"); $sql->execute(array(':Location' => '')); $row = $sql->fetch(PDO::FETCH_ASSOC); } catch(PDOException $e) {

目前PDO im也有问题(这没有帮助)

这是我的代码的当前段

> try{
$sql  = $conn->prepare(" SELECT Channel_Location FROM channels)
ORDER BY RAND()
limit 5");
$sql->execute(array(':Location' => ''));
$row = $sql->fetch(PDO::FETCH_ASSOC);
}
catch(PDOException $e)
{
    echo $sql . "<br>" . $e->getMessage();
}
$conn =  null; 
>试试看{
$sql=$conn->prepare(“从通道中选择通道位置”)
兰德订单()
限额(5”);
$sql->execute(数组(':Location'=>'');
$row=$sql->fetch(PDO::fetch_ASSOC);
}
捕获(PDO$e)
{
echo$sql。“
”$e->getMessage(); } $conn=null;

我基本上是试图连接到数据库并从表
Channel_Location
中提取5个随机结果,但我收到一个错误对象,类PDOStatement无法转换为string,我想知道如何通过将返回的5个结果放入数组来解决这个问题

您必须删除查询中
频道
后的括号;在查询中没有要绑定的
:Location
,您不能回显
$sql
,因为它是一个对象,不是字符串:只需回显
$e->getMessage
它返回的
$sql
是未定义的,并且没有选择任何数据库。我检查了我的include
数据库。php
并且一切都正确显示使用database.php文件中的代码添加到原始线程中你在哪里实例化$conn对象?
$conn=new PDO(mysql:'host='$servername.'dbname='$dbname',$username,$password);
   try{    
    $sql  = $conn->prepare("SELECT Channel_Location FROM channels ORDER BY RAND()
    limit 5");
    $sql->execute();
    $row = $sql->fetch(PDO::FETCH_ASSOC);
   }
   catch(PDOException $e)
   {
        echo $e->getMessage();
   }
   $conn =  null; 
<?php
try {
    $sql = $conn->query("SELECT Channel_Location FROM channels ORDER BY RAND() LIMIT 5");
} catch(PDOException $e) {
    echo $sql . "<br>" . $e->getMessage();
}

foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $c) {
    echo "$c <br>";
}