2013-04-29 31 views
-2

當我試圖訪問jcon.php它顯示以下錯誤「語法錯誤,意外';' in /Applications/XAMPP/xamppfiles/htdocs/shared/config.php on line 4「 WHy?我做了什麼錯事?使用mysqli命令連接到mysql不工作

Confiq.php

<?php 
define("$host","localhost"); 
define ("$db","share"); 
deifne ("$dbuser";"root"); 
define ("$dbpass"; ""); 
?> 

jcon.php

<?php 
require 'config.php'; 
$con=mysqli_connect($host, $dbuser, $dbpass, $db); 
if(mysqli_connect_errno($con)){ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
?> 
+0

你輸入了錯誤在你的配置文件中定義的,並使用一個分號作爲分隔符而不是逗號。另外,這不是你如何使用'define'。 – andrewsi 2013-04-29 19:27:59

回答

0
  • 有一個在define拼寫錯誤(命名常量)。

  • 另外define函數的第一個參數是一個字符串(名稱常量)。它不應該是PHP變量。

運行這段代碼:

<?php 
define($host,"localhost"); 
define ($db,"share"); 
define ($dbuser,"root"); 
define ($dbpass, ""); 

echo $host; 

?> 

您將得到語法錯誤,如:

Notice: Undefined variable: host in C:\xampp\htdocs\test\index.php on line 2 

Notice: Undefined variable: db in C:\xampp\htdocs\test\index.php on line 3 

Notice: Constant already defined in C:\xampp\htdocs\test\index.php on line 3 

這是因爲定義的第一個參數是字符串,但你提供一個變量。參考PHP Manual。因此,變量$ 主機$ DB$ DBUSER$ DBPASS仍然不確定。

爲了運行這些代碼:

<?php 
define("host","localhost"); 
define ("db","share"); 
define ("dbuser","root"); 
define ("dbpass", ""); 

$lnk=mysqli_connect(host, dbuser, dbpass, db); 



?> 
+0

這也不起作用。定義指令將不被理解。當你嘗試使用$ dbuser時,PHP會將它理解爲一個新變量,並且不會被「root」填充。 – 2013-04-29 19:37:47

+0

@JoseAreas:是的,我犯了錯誤。感謝很多指出。編輯我的答案。 :) – 2013-04-29 19:47:42

1

這是錯誤的:

<?php 
define("$host","localhost"); 
define ("$db","share"); 
deifne ("$dbuser";"root"); 
define ("$dbpass"; ""); 
?> 

既要define(不deifne)和參數的分隔符是,;)。也有完全沒有加入"(報價)在你的變量:

<?php 
define("HOST","localhost"); 
define("DB","share"); 
define("DBUSER","root"); 
define("DBPASS", ""); 

,然後引用常量在你的函數:

$lnk = mysqli_connect(HOST, DBUSER, DBPASS, DB); 
+0

這仍然是錯誤的。定義($主機, 「localhost」 的);將不會生成值爲「localhost」的變量$ host。看到其他答案指出。 – 2013-04-29 19:48:21

+0

'define()'不用於定義變量。 – 2013-04-29 19:53:54

1

當你定義常量你不在他的名字上使用「$」: 替換:

define("$host","localhost"); 
define ("$db","share"); 
define ("$dbuser","root"); 
define ("$dbpass", ""); 

通過

define("HOST","localhost"); 
define ("DB","share"); 
define ("DBUSER","root"); 
define ("DBPASS", ""); 

及用途:

require 'config.php'; 


$con=mysqli_connect(HOST, DBUSER, DBPASS, DB); 

或者使直接歸屬:

$host ="localhost"; 
$db ="share"; 
$dbuser = "root"; 
$dbpass = "" ;