2013-05-07 75 views
1

我正在改變我所有使用PHP MySQL到MySQLi的查詢。沒有數據庫選擇的錯誤消息

我用連接設置創建了一個名爲db.php的文件。

該文件包括

<?php 
$db = new mysqli('localhost','mysqlusername','mysqlpassword'); 
echo "<h1>Success database connection</h1>"; 
if($db->connect_errno > 0) 
{ 
die('No connection [' . $db->connect_error . ']'); 
} 
?> 

我包括與文件:

require_once "/location/db.php";  

之後,我使用:

if($db->connect_error) 
{ 
    echo "Not connected, error: ".$db->connect_error; 
} 
else 
{ 
    echo "Connected."; 
} 

它呼應的聯繫,所以我認爲我的連接是否良好。

我有我想要在我的數據庫表的代碼

插入我第一次呼應的變量,所以我敢肯定,他們有內容3個PHP變量。

後,我確認我的連接是正常的(返回的連接),呼應我想要做的與查詢變量的內容:

$sql = "INSERT INTO 'Code' (`Name`, `Code`, `Admin`) 
VALUES ('$name', '$code', '$admin')"; 
echo $sql;//show query 
// Performs the $sql query on the server to insert the values 
if ($db->query($sql) === TRUE) 
{ 
    echo 'User Created.'; 
} 
else 
{ 
    echo 'Errorcreating : '. $db->error; 
} 

我得到的消息Errorcreating:沒有數據庫中選擇

我有echo $ sql向我顯示查詢。

如果我直接在SQL中複製查詢,它的工作原理應該是這樣。

這是我第一次使用MySQLi,所以有可能我犯了一個非常愚蠢的錯誤,但是我找不到它。

+0

回聲 「

SUCCES數據庫連接

」;您未指定任何條件何時打印此文件,即使連接未建立,您也將始終收到拒絕信息。 – sven 2013-05-07 12:21:25

+0

我寧願-1作爲錯誤信息是不言自明 – 2013-05-07 12:27:47

+0

是的,但我正在連接,所以我認爲它是好的 – 2013-05-07 12:39:06

回答

3

使用此

$db = new mysqli('localhost','mysqlusername','mysqlpassword','database'); 

而且您的轉義字符錯誤不使用周圍的tablename使用反引號操作符

$sql = "INSERT INTO `Code` (`Name`, `Code`, `Admin`)VALUES ('$name', '$code', '$admin')"; 
2

你確實沒有選擇任何數據庫。您已連接到數據庫服務器,可能有數百個數據庫。您需要指定您將查詢發送給哪一個!

您的查詢很好,並且在您直接輸入時有效,因爲當您這樣做時,您已經指定了要使用的數據庫。

1

您沒有在代碼中選擇你的數據庫的單引號。根據php.net中的this page,在mysqli_connect或mysqli構造函數中有一個參數,您可以輸入數據庫名稱。

下面是一個簡單的例子:

<?php 
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); 
相關問題