【问题标题】:Call to undefined method PDOStatement::numColumns()调用未定义的方法 PDOStatement::numColumns()
【发布时间】:2018-08-19 12:08:37
【问题描述】:

我无法在我的 $result 上运行方法 numColumns()

我的代码:

try {
    $db = new PDO('sqlite:temps.sqlite',null,null,array(
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ));

} catch (PDOException $e) {

    print 'Exception : ' . $e->getMessage();
}

$result = $db->query("SELECT * FROM data LIMIT 30");

$fields = $result->numColumns();

错误如下:

Uncaught Error: Call to undefined method PDOStatement::numColumns() in /*/export.php:7 Stack trace: #0 {main} thrown in /*/export.php on line 7

(第 7 行是最后一行)

为什么它不起作用?

【问题讨论】:

  • 因为你使用 PDO 而不是 SQLite3?

标签: php sqlite pdo


【解决方案1】:

您正在尝试从不同的 API 执行函数。你调用PDO,但试图从SQLite3Result执行numColumns

作为docs statePDO::query() 返回一个PDOStatement 对象,您的错误也指出了这一点:

调用未定义的方法PDOStatement::numColumns()

您需要改为执行columnCount

$result = $db->query("SELECT * FROM data LIMIT 30");

$fields = $result->columnCount();

或者如果您希望使用SQLite3,请初始化SQLite3 连接:

$db = new SQLite3('mysqlitedb.db');
$result = $db->query("SELECT * FROM data LIMIT 30");
$fields = $result->numColumns();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 2019-10-25
    • 2018-07-11
    相关资源
    最近更新 更多