php无法在mariadb数据库中选择或插入表数据(未捕获的mysqli_sql_exception:表'X'在引擎中不存在)[已关闭]

gz5pxeao  于 2022-11-28  发布在  PHP
关注(0)|答案(1)|浏览(128)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

昨天关门了。
Improve this question
我正在做一个更大的项目,通过xampp和mariaDB安装一个php解释器,还有一个更大的项目,包含一个数据库和一些php文件在一个空白的windows 10系统上。
我得到了一切运行到目前为止,php服务器是运行的命令和mariadb服务器似乎也是可达的。
我面临的问题在于我们的项目(在phpstorm下通过命令行在另一个系统上运行得很好)似乎没有在这个VM中检索我们数据库的表数据。
php内部的连接工作正常,数据库本身也得到了识别。我通过如下打印来检查:

$dbhost = "localhost"; 
 $dbuser = "root"; 
 $dbpass = "toor"; 
 $dbname = "emensawerbeseite";
 $dbport = "42069";
 $link= mysqli_connect ($dbhost, $dbuser, $dbpass,$dbname,$dbport);
      
         if(! $link ) {
            die('Could not connect: ' . mysqli_error());
         }
         
         echo 'Connected successfully</br>';
$link->set_charset("utf8"); //enables the good old äüö's

$db_list = mysqli_query($link, "SHOW DATABASES"); //mysqli

while ($row = mysqli_fetch_object($db_list)) {
 echo $row->Database . "</br>";
}

这将打印以下输出:

我还可以列出所有表的列名。
我刚刚在mariadb的数据文件夹中复制的数据库本身。它保留了我的工作版本所具有的相同的.frm、.ibd和.opt文件。
问题在于当我试图插入或检索任何类型的实际数据从数据库例如像这样。

$sql2 = "insert into gericht (id, name, beschreibung, erfasst_am, vegetarisch, vegan, preis_intern, preis_extern) values (22, 'CCurrywurst mit Pommes', '', '2022-11-14', false, false, 4.20, 6.90)";

if ($link->query($sql2) === TRUE) {
  echo "New record created successfully";
} else {
  echo "Error: " . $sql2 . "<br>" . $link->error;
}

此时会出现以下错误:
“致命错误:未捕获的mysqli_sql_异常错误:表'emensawerbeseite.gericht'不存在于C:\xampp\php\index.php中的引擎中:43堆栈跟踪:(43):请输入您的密码。在第43行C:\xampp\php\index.php中抛出了查询('插入到ger...')#1 {main}”
这究竟是什么意思呢?
我能做些什么呢?一些帖子建议只是重新启动或其他事情没有工作.

yzuktlbb

yzuktlbb1#

"Table 'emensawerbeseite.gericht' doesn't exist in engine"
这意味着您的数据库已损坏。在InnoDB的情况下,字典(ibdata1)不包含表gericht的信息,或者根本不存在。

相关问题