为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕标琳琳 2021-05-06 18:27:49
我建立了一个社交网站。有该设置页面,用户可以在其中更新他/她的信息。例如,他/她可以更新用户名,问题是有些表的名称像($ 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”附近使用
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

问题是有些表的名称像 ( $username . "_posts" )

不要那样做 MySQL / MariaDB不能很好地处理具有大量表的模式。

使用一个表存储所有帖子,并将用户的ID或名称存储为该表中的一列。

话虽这么说,您的问题是您要使用的命令被调用RENAME TABLE,而不仅仅是RENAME


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信