我无法在$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行是最后一行)
为什么不起作用?
答案 0 :(得分:3)
您正尝试从不同的API执行功能。您呼叫PDO
,但尝试从numColumns
执行SQLite3Result
。
由于docs state,PDO::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();