Hi,
I have one create sql query in one variable.
Is there any way I can get the table name from the sql query using sql parser or any other other way.
I am thinking of splitting the query by single space and then using the 3 value of the array as the table name.
Thanks,
Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
Hi
Manish Bisht píše v St 02. 08. 2017 v 16:48 +0530:
I have one create sql query in one variable.
Is there any way I can get the table name from the sql query using sql parser or any other other way.
Yes, SQL parser can do that:
<?php
require 'vendor/autoload.php';
use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Utils\Query; use PhpMyAdmin\SqlParser\Statements\CreateStatement;
$query = 'CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin)';
$parser = new Parser($query); $statement = $parser->statements[0]; foreach ($parser->statements as $statement) { if ($statement instanceof CreateStatement) { echo "Creating table $statement->name\n"; } }
I am thinking of splitting the query by single space and then using the 3 value of the array as the table name.
No, please do not make any assumptions on the SQL query structure, this is very easy to break:
CRATE TABLE `table with spaces` ...
CREATE TABLE IF NOT EXIST `table` ...
CREATE TABLE /* comment */ `table` ...
Thanks,
One more thing for the import page (import.php) does the query on import page are shown as soon as they are executed using ajax or all the import queries are executed first and then shown on the page.
Also what is the use of this link `$response->addJSON('ajax_reload', $ajax_reload);` in import.php file Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
On Wed, Aug 2, 2017 at 5:21 PM, Michal Čihař michal@cihar.com wrote:
Hi
Manish Bisht píše v St 02. 08. 2017 v 16:48 +0530:
I have one create sql query in one variable.
Is there any way I can get the table name from the sql query using sql parser or any other other way.
Yes, SQL parser can do that:
<?php
require 'vendor/autoload.php';
use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Utils\Query; use PhpMyAdmin\SqlParser\Statements\CreateStatement;
$query = 'CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin)';
$parser = new Parser($query); $statement = $parser->statements[0]; foreach ($parser->statements as $statement) { if ($statement instanceof CreateStatement) { echo "Creating table $statement->name\n"; } }
I am thinking of splitting the query by single space and then using the 3 value of the array as the table name.
No, please do not make any assumptions on the SQL query structure, this is very easy to break:
CRATE TABLE `table with spaces` ...
CREATE TABLE IF NOT EXIST `table` ...
CREATE TABLE /* comment */ `table` ...
-- Michal Čihař | https://cihar.com/ | https://weblate.org/
Developers mailing list Developers@phpmyadmin.net https://lists.phpmyadmin.net/mailman/listinfo/developers
According to my view I think this `$response->addJSON('ajax_reload', $ajax_reload);` is used to reload the left and top navigation.
And all the import queries are executed first and then displayed on the page.
Correct me if I am missing something.
Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
On Wed, Aug 2, 2017 at 8:18 PM, Manish Bisht manish.bisht490@gmail.com wrote:
Thanks,
One more thing for the import page (import.php) does the query on import page are shown as soon as they are executed using ajax or all the import queries are executed first and then shown on the page.
Also what is the use of this link `$response->addJSON('ajax_reload', $ajax_reload);` in import.php file Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
On Wed, Aug 2, 2017 at 5:21 PM, Michal Čihař michal@cihar.com wrote:
Hi
Manish Bisht píše v St 02. 08. 2017 v 16:48 +0530:
I have one create sql query in one variable.
Is there any way I can get the table name from the sql query using sql parser or any other other way.
Yes, SQL parser can do that:
<?php
require 'vendor/autoload.php';
use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Utils\Query; use PhpMyAdmin\SqlParser\Statements\CreateStatement;
$query = 'CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin)';
$parser = new Parser($query); $statement = $parser->statements[0]; foreach ($parser->statements as $statement) { if ($statement instanceof CreateStatement) { echo "Creating table $statement->name\n"; } }
I am thinking of splitting the query by single space and then using the 3 value of the array as the table name.
No, please do not make any assumptions on the SQL query structure, this is very easy to break:
CRATE TABLE `table with spaces` ...
CREATE TABLE IF NOT EXIST `table` ...
CREATE TABLE /* comment */ `table` ...
-- Michal Čihař | https://cihar.com/ | https://weblate.org/
Developers mailing list Developers@phpmyadmin.net https://lists.phpmyadmin.net/mailman/listinfo/developers
I am trying to send data to page using $response->addJSON('key', 'value');
How I can I show the above JSON value on the page ? Where does this value actually gets stored. Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
On Wed, Aug 2, 2017 at 8:30 PM, Manish Bisht manish.bisht490@gmail.com wrote:
According to my view I think this `$response->addJSON('ajax_reload', $ajax_reload);` is used to reload the left and top navigation.
And all the import queries are executed first and then displayed on the page.
Correct me if I am missing something.
Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
On Wed, Aug 2, 2017 at 8:18 PM, Manish Bisht manish.bisht490@gmail.com wrote:
Thanks,
One more thing for the import page (import.php) does the query on import page are shown as soon as they are executed using ajax or all the import queries are executed first and then shown on the page.
Also what is the use of this link `$response->addJSON('ajax_reload', $ajax_reload);` in import.php file Manish Bisht Email : hi@manishbisht.me Website : https://manishbisht.me
On Wed, Aug 2, 2017 at 5:21 PM, Michal Čihař michal@cihar.com wrote:
Hi
Manish Bisht píše v St 02. 08. 2017 v 16:48 +0530:
I have one create sql query in one variable.
Is there any way I can get the table name from the sql query using sql parser or any other other way.
Yes, SQL parser can do that:
<?php
require 'vendor/autoload.php';
use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Utils\Query; use PhpMyAdmin\SqlParser\Statements\CreateStatement;
$query = 'CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin)';
$parser = new Parser($query); $statement = $parser->statements[0]; foreach ($parser->statements as $statement) { if ($statement instanceof CreateStatement) { echo "Creating table $statement->name\n"; } }
I am thinking of splitting the query by single space and then using the 3 value of the array as the table name.
No, please do not make any assumptions on the SQL query structure, this is very easy to break:
CRATE TABLE `table with spaces` ...
CREATE TABLE IF NOT EXIST `table` ...
CREATE TABLE /* comment */ `table` ...
-- Michal Čihař | https://cihar.com/ | https://weblate.org/
Developers mailing list Developers@phpmyadmin.net https://lists.phpmyadmin.net/mailman/listinfo/developers