无法连接到localhost mysql数据库

时间:2016-08-07 16:19:46

标签: php html mysql mysqli phpmyadmin

我试图创建一个可以存储在mysql数据库中的简单表单。每当我尝试连接时,它都不会让我失望。这就是我所拥有的:

PHP:

<?php

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

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysqli_error());
}

$db_selected = mysqli_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}

$value = $_POST['input1'];
$value2 = $_POST['input2'];

$sql = "INSERT INTO demo (input1, input2) VALUES ('$value', '$value2')";

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

mysqli_close();
?>

HTML:

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

我是正确的凭据,但是当我打开我的页面时,它会说明这一点,&#34;不能使用form1:&#34;

甚至没有给我错误。

1 个答案:

答案 0 :(得分:1)

如果您将连接变量添加到mysqli_error()

的调用中,它将显示错误消息
if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error($link));
}

这适用于对mysqli_error($link)

的所有来电
  

PHP MYSQLI Manual

这个错误应该会产生PHP错误,所以如果你没有看到我认为你是在LIVE服务器上开发错误报告被关闭的话。在这种情况下,您应该像这样开始所有脚本

<?php
error_reporting(E_ALL); 
ini_set('display_errors', 1);

这将确保您在浏览器上看到这些错误!一旦脚本被调试,你应该删除这些行,因为你不希望用户在它是一个LIVE站点时出现问题时看到这些信息

此外,连接应包含数据库名称

<?php

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

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,DB_NAME);

if (!$link) {
    die('Could not connect: ' . mysqli_error());
}

//$db_selected = mysqli_select_db(DB_NAME, $link);
//if (!$db_selected) {
//    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
//}

mysqli_select_db()调用是存在的,因此如果您出于某种原因使用2个数据库,则可以更改到同一连接上的另一个数据库。

  

我认为您正在从mysql_ API转换为mysqli_ API,但遗憾的是转换不是一对一转化。