This question already has answers here:
When to use single quotes, double quotes, and backticks in MySQL
                                
                                    (12个答案)
                                
                        
                        
                            Are you allowed to use numbers as table names in MySQL?
                                
                                    (5个答案)
                                
                        
                                2年前关闭。
            
                    
我是PHP和MySQL的新手,并且尝试使用PHP Variable作为表名。但是当我这样做时,它返回:


  SQL错误:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在第1行的“ 321321”附近使用正确的语法


我的代码是:

$dbname = "321321";
require_once('authenticate.php');
$ownerID =  $_SESSION["accNumber"];
if($dbname != $ownerID){
    header('Location: login.php');
}


$db_host = 'localhost'; // Server Name
$db_user = 'root'; // Username
$db_pass = '***'; // Password
$db_name = 'test_database'; // Database Name

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
    die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}



$sql = 'SELECT * FROM '.$dbname.'';
$query = mysqli_query($conn, $sql);

最佳答案

您应该在表格名称周围添加反引号`,因为它不是以字母开头:

$sql = 'SELECT * FROM `'.$dbname.'`';


正如@RacilHilan指出的那样(请参见下面的评论),最好重命名表以避免这种混乱。

关于php - 在Select SQL查询中使用PHP变量,它返回错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49095618/

10-11 23:05
查看更多