我建立了一个社交网站。有该设置页面,用户可以在其中更新他/她的信息。例如,他/她可以更新用户名,问题是有些表的名称像($ 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
。
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消