使用PDO语句重命名数据库中的表

我建立了一个社交网站。有该设置页面,用户可以在其中更新他/她的信息。例如,他/她可以更新用户名,问题是有些表的名称像($ username。“ _posts”),因此如果用户更新了用户名,我当然可以再次访问这些表。因此,我想使用更新的用户名重命名这些表,以便能够在其他页面上访问它们。

我试过了:

$rename_table = "RENAME `" . $old_username . "_posts` TO `" . $updated_username . "_posts`";                    
$prepare_stmt = $conn->prepare($rename_table);$prepare_stmt->execute();

并且也没有(`)像:

$rename_table = "RENAME " . $old_username . "_posts TO " . $updated_username . "_posts";                    
$prepare_stmt = $conn->prepare($rename_table);$prepare_stmt->execute();

我希望表名可以更新,但是我总是会收到此错误:

SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参见SQL语法。检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的“ some_username_postsTO some_newusername_posts”附近使用


慕标琳琳
浏览 146回答 1
1回答

侃侃无极

问题是有些表的名称像 ( $username . "_posts" )不要那样做 MySQL / MariaDB不能很好地处理具有大量表的模式。使用一个表存储所有帖子,并将用户的ID或名称存储为该表中的一列。话虽这么说,您的问题是您要使用的命令被调用RENAME TABLE,而不仅仅是RENAME。
打开App,查看更多内容
随时随地看视频慕课网APP