带有表引用的预准备语句在mysql中不起作用

时间:2018-06-17 14:12:50

标签: mysql prepared-statement

我正在尝试执行以下查询,但没有运气。

SET @SQL = 'SELECT * FROM users';
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

这给了我以下错误:

  

致命错误:未捕获错误:在C:\ xampp \ phpMyAdmin \ vendor \ phpmyadmin \ sql-parser \ src \ Utils \ Query.php中调用null上的成员函数getClauses():堆栈跟踪:#0 C :\ xampp \ phpMyAdmin \ vendor \ phpmyadmin \ sql-parser \ src \ Utils \ Query.php(681):PhpMyAdmin \ SqlParser \ Utils \ Query :: getClause(NULL,NULL,'ORDER BY', - 1,false) #1 C:\ xampp \ phpMyAdmin \ libraries \ DisplayResults.php(1385):PhpMyAdmin \ SqlParser \ Utils \ Query :: replaceClause(NULL,NULL,'ORDER BY','')#2 C:\ xampp \ phpMyAdmin \ libraries \ DisplayResults.php(4376):PMA \ libraries \ DisplayResults-> _getUnsortedSqlAndSortByKeyDropDown(Array,'')#3 C:\ xampp \ phpMyAdmin \ libraries \ sql.lib.php(1689):PMA \ libraries \ DisplayResults- > getTable(Object(mysqli_result),Array,Array,false)#4 C:\ xampp \ phpMyAdmin \ libraries \ sql.lib.php(1980):PMA_getHtmlForSqlQueryResultsTable(Object(PMA \ libraries \ DisplayResults),'。/themes / pmahom ...',NULL,Array,false,122,122,NULL,Object(mysqli_result),Array)#5 C:\ xampp \ phpMyAdmin \ libraries \ sql.lib.php(2199) :PMA_getQueryResponseForResultsReturned(第564行的C:\ xampp \ phpMyAdmin \ vendor \ phpmyadmin \ sql-parser \ src \ Utils \ Query.php中的Objec

但运行此查询可以正常工作:

PREPARE stmt1 FROM 'SELECT SQRT(POW(?, 2) + POW(?, 2)) AS hyp';
SET @a = 3;
SET @b = 4;
EXECUTE stmt1 USING @a, @b;
DEALLOCATE PREPARE stmt1;

这显然以前的查询是查询数据库中的表。 但后一种查询只是简单地选择一些没有引用数据库表的值。

以前的查询有什么问题? 我们需要以其他方式引用数据库吗?

0 个答案:

没有答案