websocket 服务器找不到类 mysqli。如何在我自己的 websocket 服务器中使用 mysql 数据库连接? [复制]

Posted

技术标签:

【中文标题】websocket 服务器找不到类 mysqli。如何在我自己的 websocket 服务器中使用 mysql 数据库连接? [复制]【英文标题】:websocket server can't find class mysqli. How can i use mysql database connection inside my own websocket server? [duplicate] 【发布时间】:2021-07-29 14:37:49 【问题描述】:

我想在我自己的 websocket 服务器中使用 mysqli 数据库连接。如何在不定义 unix 套接字路径的情况下使用数据库?像这样: $connection = new mysqli($db_servername, $db_username, $db_password, $db_name,3306,'/Applications/MAMP/tmp/mysql/mysql.sock');

webSocket 服务器正在localhost:8080 上运行。我还尝试了其他一些端口和主机名,但仍然出现同样的错误: Fatal error: Uncaught Error: Class 'mysqli' not found in D:\project\

$this->socketResource = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($this->socketResource, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($this->socketResource, 0, $this->port);
socket_listen($this->socketResource);
public function connectToDatabase()
      $db_servername = "localhost";
      $db_username = "root";
      $db_password = "root";
      $db_name = "dbname";

      // Create connection
      $connection = new mysqli($db_servername, $db_username, $db_password, $db_name);
      return $connection;
    

【问题讨论】:

【参考方案1】:

错误是该类不存在,您没有安装 mysqli 扩展。 The manual

我个人不使用 Windows,但如果我没记错的话,你应该去你的 php.ini 文件并取消注释行 extension=mysqli。 (我不知道这是否是实际名称,但进行 mysqli 搜索应该可以让您到达您所在的位置。)。二进制文件通常已经安装在 Windows 上,但如果没有,您应该能够从 PHP 手册中找到可下载的文件。

【讨论】:

我的 macbook pro aswel 也有同样的问题。当我在没有 webSocket 的情况下连接数据库时,它工作正常。 你安装了mysqli扩展吗? @Carpiee 如何在 windows 或 mac os 上检查? @Carpiee phpinfo(),搜索 mysqli,如果在扩展下找不到,说明没有安装 有一部分mysqli support。我找不到它说not supported

以上是关于websocket 服务器找不到类 mysqli。如何在我自己的 websocket 服务器中使用 mysql 数据库连接? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:在 Windows 上找不到类“MySQLi”

PHP 7.2.1,未捕获的错误:找不到类“mysqli”[重复]

无法通过php代码连接到mysql数据库,PHP致命错误:找不到类'MySQLi'

在类路径中添加库后找不到 Jetty WebSocket 类

在 docker php 容器中找不到 MySQLi

Ktor WebSockets:kotlinx.serialization.SerializationException:找不到类“DefaultClientWebSocketSession”的序列化