致命错误:找不到类“ TableRows”

时间:2019-08-20 06:42:17

标签: php mysql pdo

我遇到这样的错误

  

致命错误:在第15行的/Applications/XAMPP/xamppfiles/htdocs/colorlib-search-23/test.php中找不到类'TableRows'

这是我的代码:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT * FROM users"); 
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;

检查数据库表的名称以及所有复制粘贴的其他代码,但仍然无法正常工作

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT * FROM users"); 
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;

不应出现此错误。

1 个答案:

答案 0 :(得分:4)

Internet上有一篇非常有害的文章,告诉您需要任何TableRows类来使用PDO。 哪个是垃圾。

实际上,您不需要这样的东西。 只需使用常规的foreach

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->query("SELECT * FROM users"); 
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);

这时,您已经有了一个常规的PHP数组,可以使用foreach对其进行遍历,或者使用json_encode进行编码或以其他方式进行编码

// iterate over rows
foreach($data as $row) { 
    // iterate over values in each row
    foreach($row as $v) { 
        echo $v, " ";
    }
    echo "<br>"\n;
}