簡體   English   中英

PHP未將數據保存到數據庫

[英]PHP not saving data to database

我覺得我正在接近弄清為什么PHP 不將數據保存到數據庫中的原因 我嘗試從眾多教程中學習PHP和MySQL,但都失敗了。

所以...我覺得嘗試連接到MySQL數據庫時可能沒有指定某些內容。

在最近的教程中,僅將文本從輸入內容輸出到MySQL中的表中,我收到一條錯誤消息,指出未找到服務器“ localhost”。 我的Apache已安裝在端口60(不是默認端口80)上。 因此,我認為這可能是問題所在。 我嘗試將localhost:60添加到mysqli_connect而不是localhost本身,並且錯誤消失了!

但是,仍然存在一個問題: 1.加載demo.php頁面需要花費很多時間(請參見下面的代碼)。 2.數據仍未添加。

這是代碼(我將視頻中的原始MySQL轉換為MySQLi並添加了注釋):

demo.php:

   <?php

    define('DB_NAME', 'forms1');
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    define('DB_HOST', 'localhost:60');

    // stored in a variable to TEST if it's working
    $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_HOST);

    // TEST if a link has been established (connection)
    if (!$link) {
        die('Could not connect:' . mysqli_error($link));
    }
    // same as above
    $db_selected = mysqli_select_db($link,DB_NAME);

    if(!$db_selected) {
        die('Can\t use ' . DB_NAME . ': ' . mysqli_error($link));
    }
    // Check SUCCESS with commented command below
    // echo 'Connected successfully.';

    // stored in a variable to shorten
    $value = $_POST['input1'];

    // stored in a variable to TEST
    $sql = "INSERT INTO demo (input1) VALUES ('$value')"; 

    if(!mysqli_query($link, $sql)) {
        die('Error: ' . mysqli_error($link));
    }

    mysqli_close($link);
?>

演示form.php的:

<form action="demo.php" method="post" />
<p>Input 1: <input type="text" name="input1" /></p>
<input type="submit" value="Submit" />
</form>

我對另一個代碼也遇到了同樣的問題 ,請參見此處的線程: PHP數據庫不會保存數據

真的希望有人能在這里為我提供幫助。 可惜我還沒有工作的基礎...

謝謝!

嘗試一下:(您當前的代碼對我不起作用)HTML表單和PHP / SQL是一體的。

<?php
DEFINE ('DB_USER', 'xxx');
DEFINE ('DB_PASSWORD', 'xxx');  
DEFINE ('DB_HOST', 'xxx');
DEFINE ('DB_NAME', 'xxx');

$link = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) 
OR die("could not connect");

if(isset($_POST['submit'])){

    // stored in a variable to shorten
    $value = mysqli_real_escape_string($link,$_POST['input1']);

    // stored in a variable to TEST
    $sql = "INSERT INTO demo (input1) VALUES ('$value')"; 

    if(!mysqli_query($link, $sql)) {
        die('Error: ' . mysqli_error($link));
    }

    else { echo "Success"; }

} // if(isset($_POST['submit']))

    mysqli_close($link);
?>

<form action="" method="post" />
<p>Input 1: <input type="text" name="input1" /></p>
<input type="submit" name="submit" value="Submit" />
</form>

MySQL使用端口3306作為默認端口。 PHP是否直接連接到數據庫? 如果是,請嘗試使端口匹配。

您是否向MySQL添加了權限,以允許您的應用連接數據庫並與之交互? 您應該閱讀有關GRANT和權限的信息。

但是,以上Dagon的評論是一個嚴肅的評論:僅在您希望數據被盜,被破壞或兩者兼而有之時,才應將數據庫直接發布到Internet。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM