PHP 不将数据保存到数据库

标签 php mysql database localhost

我觉得我越来越接近弄清楚为什么 PHP 没有将数据保存到我的数据库。 我尝试从大量教程中学习 PHP 和 MySQL,但都失败了。

所以...我觉得在尝试连接到 MySQL 数据库时可能有些东西我没有指定。

在最近的一个教程中,该教程只是将输入中的文本输出到 MySQL 中的表,我收到一条错误,指出找不到服务器“localhost”。 我的 Apache 已安装在端口 60(不是默认端口 80)上。所以我想这可能就是问题所在。我尝试将 localhost:60 添加到 mysqli_connect 而不是 localhost 本身,错误消失了!

但仍然存在一个问题: 1. 加载 demo.php 页面需要很长时间(请参见下面的代码)。 2. 数据仍然尚未添加...

这是代码(我将其从视频中的原始 MySQL 转换为 MySQLi 并添加了注释):

演示.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);
?>

演示表单.php:

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

我在另一个代码中也遇到了同样的问题,请参阅此处的线程: PHP database won't save data

真的希望有人可以在这里帮助我。 遗憾的是我还没有获得工作的基础......

谢谢!

最佳答案

试试这个:(你现在的代码对我来说不起作用)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>

关于PHP 不将数据保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465109/

相关文章:

php - 在 mySQL 中对表进行分区

php - 如何在 PHP 中对 UTF-8 字符串数组进行排序?

php - 从数据库中检索当前用户 ID 以在新表中使用

mysql - 如何根据MySQL中非空值的最大数量合并行

php - mPDF 以 PDF 打印为中心

php - 安全地发布并打印 JavaScript 标签

php - 这个查询有什么问题

mysql - 如何在 Asp.Net 中缩短图像 URL

sql - 将抽象类和子类保存到数据库

MySql - 在不使用任何聚合函数的情况下查找至少出现两次的值