【问题标题】:Load Data from a mySql DB in to HTML textBox将数据从 mySql DB 加载到 HTML 文本框
【发布时间】:2018-10-02 13:14:34
【问题描述】:

我正在尝试从页面中的数据库表加载数据。

我在下面报告的这个是一个示范性例子,解释我想如何实现它...... 实际上,我们正在谈论数据库的 100 个字段和 1000 个并传递表的代码行...

<?php
$servername = "localhost";
$username = "progettocantiere";
$password = "";
$dbname = "my_progettocantiere";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 



$idCantiere = $_GET['idCantiere'];

$sql1 = "SELECT * FROM Cantiere WHERE idCantiere = '$idCantiere'";



    $result = mysqli_query($sql1, $conn);
    
   
    $details = mysqli_fetch_array($result);




    $savedNomeCantiere = $details["nomeCantiere"];
    $savedCodiceCommessa = $details["codiceCommessa"];
    $savedIndirizzoCantiere = $details["indirizzoCantiere"];

var_dump($details);


$result1 = $conn->query($sql1);

echo($nomeCantiere);

?>


<html>
<head>
</head>
<body>


   
        <table width="300" border="0">
          <tr>
            <td>Name</td>
            <td><input type="text" name="savedNomeCantiere" style="text-align:right" value="<?php echo $savedNomeCantiere; ?>" /></td>
          </tr>
          <tr>
            <td>Cost</td>
            <td><input type="text" name="savedCodiceCommessa" style="text-align:right" value="<?php echo $savedCodiceCommessa; ?>" /></td>
          </tr>
           <tr>
            <td>Cost</td>
            <td><input type="text" name="savedIndirizzoCantiere" style="text-align:right" value="<?php echo $savedIndirizzoCantiere; ?>" /></td>
          </tr>
          
        </table>

<br/>

   
</body>
</html>

我尝试过在文本框的“值”中添加“回声”的这种上传类型,但它不起作用。

此行用于通过页面重定向导出“id”。

$idCantiere = $_GET['idCantiere'];

如果我想尝试 var_dump($details) 它返回 NULL

【问题讨论】:

  • 您不能混合使用 mysqli 和 mysql API。将所有内容切换到 mysqli。
  • @aynber 哪里对不起?
  • 您的查询和获取都使用 mysql_* 而不是 mysqli
  • 你能用当前代码edit你的帖子吗?要么它仍然不起作用,要么没有结果。

标签: php html mysql database load


【解决方案1】:

你的代码应该是这样的

<?php
$servername = "localhost";
$username = "progettocantiere";
$password = "";
$dbname = "my_progettocantiere";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 



$idCantiere = $_GET['idCantiere'];

$sql1 = "SELECT * FROM Cantiere WHERE idCantiere = '{$idCantiere'}";



    $result = $conn->query($sql1);


    $details = $result->fetch_array();




    $savedNomeCantiere = $details["nomeCantiere"];
    $savedCodiceCommessa = $details["codiceCommessa"];
    $savedIndirizzoCantiere = $details["indirizzoCantiere"];

var_dump($details);


$result1 = $conn->query($sql1);

echo($nomeCantiere);

?>


<html>
<head>
</head>
<body>



        <table width="300" border="0">
        <tr>
            <td>Name</td>
            <td><input type="text" name="savedNomeCantiere" style="text-align:right" value="<?php echo $savedNomeCantiere; ?>" /></td>
        </tr>
        <tr>
            <td>Cost</td>
            <td><input type="text" name="savedCodiceCommessa" style="text-align:right" value="<?php echo $savedCodiceCommessa; ?>" /></td>
        </tr>
        <tr>
            <td>Cost</td>
            <td><input type="text" name="savedIndirizzoCantiere" style="text-align:right" value="<?php echo $savedIndirizzoCantiere; ?>" /></td>
        </tr>

        </table>

<br/>


</body>
</html>

【讨论】:

  • 不要只发布代码转储。请解释为什么这个解决方案有效。
  • 比这段代码 $result = mysqli_query($sql1, $conn);应该是 $result = $conn->query($sql1);这 $details = mysqli_fetch_array($result);应该是 $details = $result->fetch_array();因为他们使用$conn = new mysqli连接db,所以可以使用原代码“$result = mysqli_query($sql1, $conn); $details = mysqli_fetch_array($result);”如果你像这样打开与 db 的连接 $conn = mysqli_connect(...); ;)
【解决方案2】:

其中一个问题是您传递 $conn 和 $sql1 的顺序错误。

$result = mysqli_query($sql1, $conn); 应该是$result = mysqli_query($conn, $sql1);

如果我想尝试一个 var_dump($details) 它返回 NULL

这正是您在使用之前需要检查$result 的原因。 mysqli_query 如果成功则返回 object,如果失败则返回 false - http://php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-returnvalues。

你不需要在这里花哨,但你至少应该做一个健全的检查。

...
$sql1 = "SELECT * FROM Cantiere WHERE idCantiere = '$idCantiere'";
$result = mysqli_query($sql1, $conn);

if ($result !== false) {
    $details = mysqli_fetch_array($result);
    ...

另外,我需要指出"SELECT * FROM Cantiere WHERE idCantiere = '$idCantiere'"; 非常危险,因为您无法控制$idCantiere。请查阅 SQL 注入以及如何避免它。

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多