This is open to SQL injection:

$queryBuilder
    ->select(...$_GET['columns'])
    ->from($_GET['table'])
    ->where($_GET['where'])
;

All below statements produce 42. This is valid SQL:

SELECT `42 FROM TABLE`() FROM dual;
SELECT `⠀` FROM `⠀`;
SELECT * FROM "42"; -- With ANSI_QUOTES
SELECT * FROM """""";

This is valid in MySQL:

VALUES ROW(42)

This is valid in MariaDB:

VALUES (42);

This is not a valid SQL:

SELECT * FROM "\"\"";

There are also windows functions, CTE, Stored procedures, and a bunch of
new features.

Reply via email to