2013-10-02 108 views
1

我正在嘗試使用php顯示SQL數據庫。無法選擇數據庫

我得到一個錯誤:

Cannot Select Database (running local on XAMPP). 

XAMPP我走進xampp-security,改變了超級用戶的密碼設置爲 「thisthing」

我有一個文件名爲:mydb.sql

MYDB。 sql:

CREATE TABLE `dpuForm` ( 
`ID` INT NOT NULL AUTO_INCREMENT , 
`JN` TINYTEXT NOT NULL , 
`PN` TINYTEXT NOT NULL , 
`QTY` TINYTEXT NOT NULL , 
`DESC` TINYTEXT NOT NULL , 
PRIMARY KEY (`ID`)); 

INSERT INTO 'dpuForm' ('JN',...........yadayadayada 

這是我的PHP:

<?php 

$host = "localhost"; 
$username="root"; 
$password="thisthing"; 
$database="mydb"; 

mysqli_connect($host,$username,$password); 
@mysqli_select_db($database) or die("Unable to select database"); 

$query = "SELECT * FROM dpuForm"; 
$result = mysqli_query($query); 
$num = mysqli_numrows($result); 

mysqli_close(); 

?> 
<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
<table> 
    <th>Job Number</th> 
<th>Part Number</th> 
<th>QTY</th> 
<th>Description</th> 

<?php 
     $i=0; 
     while ($i < $num) { 
    $f1=mysqli_result($result,$i,"JN"); 
    $f2=mysqli_result($result,$i,"PN"); 
    $f3=mysqli_result($result,$i,"QTY"); 
    $f4=mysqli_result($result,$i,"DESC"); 
    ?> 
    <tr> 
    <td><?php echo $f1; ?></td> 
    <td><?php echo $f2; ?></td> 
    <td><?php echo $f3; ?></td> 
    <td><?php echo $f4; ?></td> 
    </tr> 
    <?php $i++;} ?> 
</table> 
</body> 
</html> 
+4

'@ mysqli_select_db'唐」不要在數據庫連接上抑制錯誤警告。並將你的die()語句改爲die('Unable to connect to database。')mysqli_connect_error());' – Ohgodwhy

+0

你認爲我怎麼改變它? – bagofmilk

+0

從'mysqli_select_db'呼叫 – Ohgodwhy

回答

3

你需要使用

$link = mysqli_connect($host,$username,$password,$database); 
$result = mysqli_query($link,$query); 

這是因爲你使用的mysqli的程序風格,而不是面向對象的。

參見:mysql database

+1

這是真的,不過,你不需要在連接選擇DB,您仍然可以使用:'mysqli_select_db($連接,「databse_name」);'。而且您對查詢也是正確的,並且每次嘗試執行sql語句時都必須提供數據庫鏈接。 – Ohgodwhy

+0

現在我得到這個錯誤:未知數據庫「mydb的」但是,這一次我的頭顯示(沒有數據)中,只有頭。 – bagofmilk

+1

@Ohgodwhy:是的,我同意你的觀點。我想他們兩種方式都可以工作,只是程序員選擇他/她找到方便的方法的一個問題 – aaron

1

在程序風格,預計2個參數。

$link = mysqli_connect($host, $username, $password); 

mysqli_select_db($link, $database); 

但首先使用導入您的mydb.sql phpMyAdmin的:

  • 轉到數據庫選項卡,並創建一個新的數據庫
  • 然後去導入選項卡,並導入mydb.sql

如果您已經使用phpMyAdmin創建了數據庫,然後根據您的設置發現.sql文件大於允許的大小,則一種方法是從命令行(窗口S指令提示等):

mysql -u mysql-user-name -p database_name < mydb.sql 

或(更改路徑適當地):

C:\wamp\bin\mysql\mysql5.5.24\bin\mysql -u mysql-user-name -p database_name < C:\mydb.sql 
1

可以嘗試連接到的mysql_connect

例如

$con = mysql_connect("host","username","password") or die("! server"); 

$db = mysql_select_db("databasename",$con) or die("! db"); 
1

您好,如果您正在使用mysqli_connect那麼你應該使用以下

$con=mysqli_connect("localhost","root","password","mydb"); 

OR

$con=mysqli_connect("localhost","root","","mydb"); 

試試這個......