2016-08-07 56 views
0

我试图做一个简单的表单,可以存储在MySQL数据库。每当我尝试连接它不会让我。下面是我有:无法连接到本地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> 

我正确的凭据,但是当我打开网页,它说这一点,“不能使用forms1: “

甚至不给我错误。

回答

1

它会给你一个错误信息,如果你的连接变量添加到调用mysqli_error()

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

这适用于所有来电mysqli_error($link)

The 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个数据库,则可以在同一连接上更改为另一个数据库。

I assume you are converting from the mysql_ API to mysqli_ API unfortunately the convertion is not a one to one conversion.

+0

谢谢,我已经应用了所有补丁,它现在只显示1个错误: “警告:mysqli_select_db()预计参数1是mysqli的,串在d给出:\ MAMP \ htdocs中\基本\演示.php on line 16“。这是第16行:“$ db_selected = mysqli_select_db(DB_NAME,$ link);”。它不认为$ link是mysqli? –

+0

你不需要'mysqli_select_db()'作为数据库现在在'mysqli_connect()'中提到的那就是为什么我将它评论出来 – RiggsFolly

+0

啊,明白了。无论如何我都会通过它,但无论如何,它给了我一个新的错误:“警告:mysqli_query()需要至少2个参数,1在D:\ MAMP \ htdocs \ basic \ demo.php中给出27" 。第27行是“if(!mysqli_query($ sql)){”。 –