我的cpanel中有一个名为DELTASTORE的数据库。有像ADMIN,CATAGORY,PRODUCT,ORDER这样的表。我在每个表中插入了一些值。
如果我运行sql
SELECT * FROM ADMIN效果很好。
但是如果我运行sql
SELECT * FROM ORDER不管用!而不是那样,如果我运行sql
SELECT * FROM DELTASTORE.ORDER那它就正常工作了。
为什么会发生这种情况?
在表名之前写数据库名并始终在它们之间加上一个点是很重要的吗?
发布于 2015-09-03 19:33:48
若要省略数据库前缀,必须设置默认数据库,使用
USE databasename在编写访问数据库的程序时,API提供了一种方法。例如,在PHP中,您可以在DSN中指定默认数据库:
mysql:host=hostname;dbname=defaultDB在MySQLi中,这是mysqli_connect()的一个论点。在过时的mysql扩展中,您使用mysql_use_database()。在其他编程语言中也有类似的方法。
此外,由于ORDER是MySQL关键字,所以必须将其放在后台:
SELECT * FROM `ORDER`或以数据库作为前缀:
SELECT * FROM DELTASTORE.ORDER通常最好避免使用MySQL保留的单词作为表名或列名,以防止出现类似的问题。请参阅Syntax error due to using a reserved word as a table or column name in MySQL
发布于 2015-09-03 19:31:59
原因是,ORDER是SQL关键字(用于ORDER,用于对结果行进行排序)。因此,对于数据库名称(或示意图名称),您指的是表顺序。最好不要在表中使用关键字。
发布于 2015-09-03 19:17:54
只需要放上支架。
Select * from `ORDER`
https://stackoverflow.com/questions/32383700
复制相似问题