【发布时间】:2014-04-23 07:01:04
【问题描述】:
我觉得我越来越接近于弄清楚为什么 PHP 没有将数据保存到我的数据库中。 我尝试从众多教程中学习 PHP 和 MySQL,但都失败了。
所以...我觉得在尝试连接到 MySQL 数据库时可能有一些我没有指定的东西。
在最近的一个简单地将文本从输入输出到 MySQL 表的教程中,我收到一条错误消息,指出找不到服务器“localhost”。
我的 Apache 已安装在端口 60(不是默认端口 80)上。所以我认为这可能是问题所在。我尝试将localhost:60 添加到mysqli_connect 而不是localhost 本身,错误消失了!
还有一个问题: 1. 加载 demo.php 页面需要很长时间(参见下面的代码)。 2.数据仍然没有被添加......
这里是代码(我从视频中的原始 MySQL 转换为 MySQLi 并添加了 cmets):
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);
?>
demo-form.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
我真的希望有人可以在这里帮助我。 可惜我还没有打好基础……
谢谢!
【问题讨论】:
-
对 SQL 注入攻击敞开大门
-
将所有
mysql_error更改为mysqli_error您正在混合 SQL 函数,嗯......不要“混合”。 ;-) -
@Dagon 这是用于学习目的,我知道它很容易受到攻击,Fred-ii- 我将编辑代码,谢谢。
-
不客气。修复这些可能会很好地修复您的代码。我以前见过这种情况。
-
还将
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_HOST);更改为$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);你在重复DB_HOST
标签: php mysql database localhost