gpt4 book ai didi

php - MySQL 存储过程 : Unknown column 'Table_Name' in 'field list'

转载 作者:行者123 更新时间:2023-11-29 00:17:00 28 4
gpt4 key购买 nike

我目前正在尝试创建我的第一个存储过程:

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。很可能没有在正确的数据库中查找。

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')

编辑

我现在更改了数据库名称也作为参数传递。

关于php - MySQL 存储过程 : Unknown column 'Table_Name' in 'field list' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22617742/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com