Error when creating a diagram via jawira/db-draw php
05:06 21 Sep 2022

I want to create a database diagram using php jawira/db-draw library (https://jawira.github.io/db-draw/index.html) for this. Without using SQL queries everything works great, but when I want to use a query it displays an error.

Fatal error: Uncaught TypeError: Jawira\DbDraw\DbDraw::__construct(): Argument #1 ($connection) must be of type Doctrine\DBAL\Connection, Doctrine\DBAL\Driver\PDO\Statement given, called in C:\xampp\htdocs\diagram\index.php on line 18 and defined in C:\xampp\htdocs\diagram\vendor\jawira\db-draw\src\DbDraw.php:26 Stack trace: #0 C:\xampp\htdocs\diagram\index.php(18): Jawira\DbDraw\DbDraw->__construct(Object(Doctrine\DBAL\Driver\PDO\Statement)) #1 {main} thrown in C:\xampp\htdocs\diagram\vendor\jawira\db-draw\src\DbDraw.php on line 26

Code below:

require_once __DIR__.'/vendor/autoload.php';

use Doctrine\DBAL\DriverManager;
use Jawira\DbDraw\{DbDraw, Theme};
use Jawira\PlantUmlClient\{Client, Format};

// a. Some logic to retrieve $connection (\Doctrine\DBAL\Connection)
$connectionParams = ['url'    => 'mysql://root:@127.0.0.1/baza_testowa',
                     'driver' => 'pdo_mysql'];
$connection = DriverManager::getConnection($connectionParams);
$sql = 'SELECT * FROM czlowiek';
$stmt = $connection->query($sql);


//b. Generating PlantUML diagram
$dbDiagram = new DbDraw($stmt);
$puml      = $dbDiagram->generatePuml(DbDraw::MAXI, Theme::AMIGA);
file_put_contents('database.puml', $puml);

// c. Converting & saving png image
$client = new Client();
$png    = $client->generateImage($puml, Format::PNG);
file_put_contents('database.png', $png);
$url = $client->generateUrl($puml, Format::PNG);
echo "";

Probably on the line:

$dbDiagram = new DbDraw($stmt);

There is a value written in parentheses. But the documentation is poor, so I don't know exactly what to put there. When I type $connection there it displays a diagram skipping the SQL query.

Please help.

php