0

TYPO3 安装后无法在自己的表中插入数据,但没有抱怨,例如通过安装工具创建的管理员用户以 完成User created!,但be_users表保持为空。

服务器正在使用:

  • Debian 6.0.6
  • TYPO3 6.0.2
  • PHP 版本 5.3.19-1~dotdeb.0
  • mysql Ver 14.14 发行版 5.5.28

编辑:到目前为止我尝试过的内容:

1.使用 MySQL Workbench 插入和typo3 数据库用户正在工作。赠款:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON `typo3`.* TO 'typo3_user'@'localhost'

2.我体验了这种commit行为并在 中添加了两行Installer.php,但没有成功:

// added
$autoCommitOffResult = $GLOBALS['TYPO3_DB']->sql_query('SET SESSION autocommit = 0;');

// the original non-working insert
$result = $GLOBALS['TYPO3_DB']->exec_INSERTquery('be_users', $insertFields);

// added
$GLOBALS['TYPO3_DB']->sql_query('commit;');

3.我删除了严格的sql_mode.

4.在非常相似的服务器上再次安装 Typo3 成功。

有什么进一步的建议吗?

4

3 回答 3

4

在不起作用的行周围尝试以下操作(之前 2 行,下面 4 行):

$GLOBALS['TYPO3_DB']->debugOutput = true;
$GLOBALS['TYPO3_DB']->store_lastBuiltQuery = true;

// Now the line which should insert the BE User:
// the original non-working insert
$result = $GLOBALS['TYPO3_DB']->exec_INSERTquery('be_users', $insertFields);

// Now print out the "insert_id" (uid autoincrement value) and query which has been executed:
echo $GLOBALS['TYPO3_DB']->sql_insert_id();
echo "<br />\n";
echo $GLOBALS['TYPO3_DB']->debug_lastBuiltQuery;
exit();

然后尝试将此查询复制并粘贴到 mysql shell。与任何问题一样,请确保您使用相同的服务器、数据库等。

出口注意没有其他代码会在创建后直接删除新用户。

于 2013-02-25T09:54:18.363 回答
1

commit在交易吗?

于 2013-02-23T13:01:46.977 回答
1

MySQL 的默认引擎是 InnoDB。将 Typo3 表的引擎更改为 MyISAM 可以解决问题:

ALTER TABLE be_users ENGINE = MyISAM;
...
于 2013-03-04T11:55:23.780 回答