gpt4 book ai didi

php - fetchAll 函数中表名的占位符变量

转载 作者:行者123 更新时间:2023-11-29 02:29:01 24 4
gpt4 key购买 nike

我在 PHP 中有一个函数,它使用 SELECT SQL 查询。我在这样的查询中使用占位符变量 (?)。 (此占位符用于 mysql 数据库中的表名):

protected function _fetchPreviousShiftData($table, $report_time)
{

$query = "SELECT * FROM ? WHERE report_date=? and shift=?";
$previousShiftData = $this->_getDbConnection()->fetchAll($query,array($table, date("Y-m-d"), $this->_shiftValue($report_time, 8)));

return $previousShiftData;
}

但是我在 $table 变量中有一个错误,我应该如何使用“?” $table 变量?错误是这样的:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''adsl_support' WHERE report_date='2013-04-06' and shift='18-2'' at line 1' in C:\php_shared_lib\Zend\Db\Statement\Pdo.php:228

最佳答案

您不能将其用于表名或字段名...仅适用于传递的值...

您可以列出可能的表名,检查它并使用

构建查询
"SELECT FROM `$table`..." 

如果检查通过

关于php - fetchAll 函数中表名的占位符变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15847763/

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