如何通过反应连接到 SQL 数据库?

Posted

技术标签:

【中文标题】如何通过反应连接到 SQL 数据库?【英文标题】:How to connect to SQL database with react? 【发布时间】:2018-10-25 20:25:54 【问题描述】:

我目前有一个网站,用 htmlphp 编写,可以访问我的 SQL 数据库。我现在已经开始学习 React,并且希望我的超级简单的网站也能连接到 SQL 数据库。

以前我做过这个:

<php
    $conn = mysqli_connect($serverIP, $dbusername,$dbpassword,$dbname);
    if(mysqli_errno($conn)) 
     die("<p>MySQL error:</p>\n<p>" . mysqli_error($conn) . "</p>\n</body>\n</html>\n");
    
?>

然后在 index.php 文件中,这样做:

<?php include_once "connection.php"; ?>

然后继续使用基本 SQL 来获取数据。

我如何在 React 中做同样的事情?更具体地说,如何在 React 中编写 PHP 才能连接到 SQL 数据库?这段代码看起来如何?

另外,由于我正在自学 React,如果有一个人们可以审查代码的地方,并且我可以收到改进的提示,那就太好了。有这样的网站/社区吗?

【问题讨论】:

【参考方案1】:

我认为您可能还不明白如何将图层完全组合在一起(不用担心 - 需要一些时间才能理解)。在您的情况下,您的服务器端 (PHP) 代码将使您的所有数据库调用并检索/修改您需要的任何数据(毕竟,您不希望在客户端查看您的数据库凭据!)。

为了显示或更改来自 React JS 前端的数据,您需要一种将这些意图传达给后端的方法;这可以通过在您的 PHP 代码库中创建 REST 端点来完成,然后您需要从您的 React JS 代码中调用它(您可以为此使用 Axios、fetch 或许多其他 HTTP 库)。

这是我从 reddit 上的 /u/roboctocat 获取的一个超级简单的示例: https://www.reddit.com/r/reactjs/comments/8lb6u3/can_anyone_provide_me_a_basic_example_tutorial/

您的客户代码:

// index.jsx
class MyComponent extends React.Component 
    onClick()  
        fetch("http://your-php-server/ping-pong.php")
            .then(res => res.json()) 
            .then((result) =>  console.log(result); ) 
    

    render()  
        return ( 
            <button onClick=this.onClick /> 
        ); 
     

还有你的服务器代码:

// ping-pong.php
<?php
    header('Content-Type: application/json'); 
    echo json_encode(array('ping' => 'pong')); 
?>

【讨论】:

【参考方案2】:

试试这个

const getData()=>
  //function to fetch data
  const handleData=()=>
    axios.get('php file path')
      .then(response=>response.json())
      .then((data)=>console.log(data.json));

    
  

  return(
  <>
      <button onClick=handleData></button>
  </>
  );
 //end main

export default getData()

【讨论】:

【参考方案3】:

首先我建议你编写你的php代码如下:

 $conn = mysqli_connect($serverIP, $dbusername,$dbpassword,$dbname);
    if(mysqli_errno($conn)) 
     
     $connError = array(
         "status" => boolval(0),
         "error" => mysqli_errno($conn)
     );

     $error = json_encode($connError);

     die($error);
    

现在您可以从后端在 React 中获得更好的响应。

然后在下一步中,您可以调用 fetch api 将请求发送到您的后端并检查数据库连接:


useEffect(() => 
  fetch("https://your-server/connection.php")
    .then((response) => response.json())
    .then((res) => console.log(res));
, []);

现在使用useEffect() 挂钩,您可以在每次页面加载时检查一次数据库连接。

您还可以检查restypeof 是否为array,然后执行诸如向用户显示错误消息之类的操作。

希望对你有帮助。

【讨论】:

以上是关于如何通过反应连接到 SQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Jetbrains DataGrip 连接到远程 MS SQL Server 数据库?

如何使用 Windows 身份验证通过 sqlalchemy 连接到 SQL Server?

如何通过 Exposed 连接到 Google Cloud SQL

如何从 C# 连接到 SQL 数据库?

如何使用ODBC数据连接连接到本地SQL Server? (我得到“登录失败”)

如何使用 JDBC 连接到 SQL Server 2008 数据库?