[英]MySQL Stored Procedure: Unknown column 'Table_Name' in 'field list'
我目前正在尝试使用以下方法创建我的第一个存储过程:
DELIMITER $$
CREATE PROCEDURE `GetNumRows` ( IN tab_name VARCHAR( 40 ) )
BEGIN
SET @t1 = CONCAT( 'SELECT COUNT(*) FROM ', tab_name) ;
PREPARE stmt3 FROM @t1 ;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
END$$
并以此调用它:
$query = $this->mysqli->query("CALL GetNumRows($this->tableName)");
if($query == false)
{
die("mySQLi Error: ".$this->mysqli->error);
}
显然,我什至无法超越,我死定了:
mySQLi Error: Unknown column 'gps_location' in 'field list'
我如何修改我的存储过程,以便允许传入表名并能够获取行数。
像这样创建SP。 大多数likley都没有在正确的数据库中查找。
DELIMITER $$
CREATE PROCEDURE `GetNumRows` (IN database_name VARCHAR(50),
IN tab_name VARCHAR(40) )
BEGIN
SET @t1 = CONCAT('SELECT COUNT(*) FROM ',database_name,'.', tab_name,';');
PREPARE stmt3 FROM @t1 ;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
END$$
并确保CALL参数用'
换行。 我不确定如何在PHP中包含',但我确定您知道:)
CALL GetNumRows('$this->tableName')
编辑
Ive现在已更改,因此数据库名称也作为参数传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.