簡體   English   中英

無法連接到本地主機mysql數據庫

[英]Can't connect to localhost mysql database

我正在嘗試制作一個可以存儲在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:”

甚至都沒有給我錯誤。

如果將連接變量添加到對mysqli_error()的調用中,它將給您一條錯誤消息。

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

這適用於所有對mysqli_error($link)調用

PHP MYSQLI手冊

此錯誤應該產生了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,不幸的是,該轉換不是一對一轉換。

暫無
暫無

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

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