php - 创建表查询给我 "table does not exists"错误

标签 php mysql database drupal-7 innodb

我的本​​地 Drupal 站点崩溃了。

这是错误:
PDOException:SQLSTATE[42S02]:未找到基表或 View :1146 表“drupal722.semaphore”不存在:SELECT 过期,值来自 {semaphore} WHERE name = :name; lock_may_be_available() 中的数组( [:name] => variable_init )(D:\Projects\wamp\www\drupal\includes\lock.inc 第 167 行)。

关闭函数中抛出未捕获的异常。 PDOException: SQLSTATE[42S02]: 未找到基表或 View : 1146 表“drupal722.semaphore”不存在:DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; lock_release_all() 中的数组( [:db_condition_placeholder_0] => 573260675528605a31630a6.23576489 )(D:\Projects\wamp\www\drupal\includes\lock.inc 的第 269 行)。

然后我用谷歌搜索了如何解决这个错误,发现我必须创建一个表。所以我触发了一个查询来创建表:

CREATE TABLE IF NOT EXISTS `semaphore` (
    `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique name.',
    `value` varchar(255) NOT NULL DEFAULT '' COMMENT 'A value for the semaphore.',
    `expire` double NOT NULL COMMENT 'A Unix timestamp with microseconds indicating when the semaphore should expire.',
    PRIMARY KEY (`name`),
    KEY `value` (`value`),
    KEY `expire` (`expire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table for holding semaphores, locks, flags, etc. that...';`

但令我惊讶的是,它给出了以下错误:(drupal722 是我的数据库名称)

#1146 - 表“drupal722.semaphore”不存在

现在,我有两个问题:

  1. 为什么创建表查询给出“表不存在”错误。很明显,我知道该表不存在,因此我想创建表,因此我正在触发创建表查询。

  2. 如何解决上述与 Drupal 相关的错误以使我的网站恢复正常工作?

顺便说一句,我已经在 drupal.stackexchange.com here 上问过这个问题但没有取得丰硕的成果所以我再次在这里询问。

在 drupal.stackexchange.com 上发布问题并与那里的少数人进行讨论后,我已经尝试过以下查询:

CREATE TABLE `semaphore` (
    `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique name.',
    `value` varchar(255) NOT NULL DEFAULT '' COMMENT 'A value for the semaphore.',
    `expire` double NOT NULL COMMENT 'A Unix timestamp with microseconds indicating when the semaphore should expire.',
    PRIMARY KEY (`name`),
    KEY `value` (`value`),
    KEY `expire` (`expire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table for holding semaphores, locks, flags, etc. that...';`

但问题仍然存在。错误也与此查询相同...

最佳答案

许多 drupal 用户遇到此问题,请检查此 https://drupal.org/node/1308308链接它可能对您有帮助。

尝试删除setting.php文件并复制过去的default.setting.php文件并使用setting.php文件重命名,然后尝试访问网站。

关于php - 创建表查询给我 "table does not exists"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000891/

相关文章:

php - MySQL:使用分组依据按日期选择行顺序

php - 如何在数据库而非数组中使用 in_array 的替代方法

php - 如何恢复崩溃的上传?

javascript - 为什么 javascript 验证结束而不是 php 验证

匿名函数中的 PHP 变量

java - 我应该在哪里保存 JDBC 连接详细信息?

android - 将经过身份验证的 facebook 用户存储在数据库中

php - error_message 变量在表单提交时不显示字符串值

php - 实际有值时sql语句返回null

java - Intent 崩溃。安卓工作室