2014-06-29 43 views
0

我有一個PHP腳本,我寫了,它不會返回任何東西,除了「你好」。php沒有登錄到mysql或迴應

<?php 

echo "Hello"; 

$username = "me"; 
$password = "password"; 
$hostname = "localhost"; 
$dbname = "dbname"; 

//connection to the database 
$dbhandle = new mysqli($hostname, $username, $password, $dbname) 
    or die("Unable to connect to MySQL"); 

echo "logged in"; 

// Sanitize variable 
$user_id = intval($_GET['user_id']); 

//update likes on specific id 
$result = mysqli_query($dbhandle, "SELECT user_score FROM users WHERE id = '$user_id'") 
    or die("Unable to query"); 

// Send back the score 
$return = array(); 
while ($row = mysqli_fetch_assoc($result)) { 
     $return[] = $row; 
} 
print json_encode($return); 

//close the connection 
mysqli_close($dbhandle); 

?> 

我有這個腳本工作之前,然後我把它移到另一個實例。我知道我可以用我的憑據登錄到MySQL並檢查我是否擁有所有權限,並且我知道我的用戶名和密碼是正確的。有什麼我需要改變我的PHP?還是有什麼我需要做的,當我通過瀏覽器訪問它顯示像打開服務器?

我什麼也沒有返回,除非你好,它甚至不告訴我「無法連接」。這對我來說非常混亂。我應該至少看到「登錄」或「無法連接」的權利?

+0

刪除連接字符串後面的die語句並用此替換它。然後看看你是否得到一個錯誤。 如果($數據庫句柄!) { 模具( 「連接錯誤」。mysqli_connect_error(); } –

+0

除了上面,添加錯誤到文件(S) '的error_reporting(E_ALL)的頂部報告;我試過了你的代碼,並把它回來了'Hellologged in [{「user_score('display_errors',1);'看看它是否會產生任何東西 –

+0

我試過了這兩個,都沒有工作,現在」Hello「實際上消失了 – shane

回答

0

您可能沒有得到任何輸出,因爲您在PHP中使用了error_reporting設置。第一步是在php.ini中設置display_errors = On,以及error_reporting = E_ALL。這將顯示所有錯誤,您將從上面的代碼片段中獲得更多信息。您也可以通過在文件頂部添加以下行來在PHP文件本身中設置error_reporting級別:error_reporting(-1);

有關error_reporting的更多信息here

+0

您也可以在腳本中使用'ini_set('display_errors',true);'對於任何無權訪問php.ini的人:) :) – Dale

1

您正在混合面向對象和過程式mysqli函數。當使用mysqli構造函數時,即使在失敗時也會返回對象,因此從不顯示錯誤。

使用此代碼,而不是連接到您的數據庫:

$dbhandle = mysqli_connect($hostname, $username, $password, $dbname) or die("mysqli_connect failed"); 

檢查mysqli-documentation瞭解更多信息。

+0

文檔不包含'或者死(「mysqli_connect失敗」) ' - 它包含'if($ mysqli-> connect_error){'('Error Error('。$ mysqli-> connect_errno。'''' 。$ mysqli-> connect_error); }' –

+1

你的答案和OP之間的區別是'die()'中的消息。你或死(「mysqli_connect失敗」)'OP的'或者死(「無法連接到MySQL」)'。 –

+0

@ Fred-ii-因爲其他函數都是以程序風格編寫的,所以我使用了程序連接方法。當使用OO風格的構造函數時,你是對的。我指的是最後一個示例代碼,它說'$ link = mysqli_connect('localhost','my_user','my_password','my_db');如果(!$ link){('Error Error('。mysqli_connect_errno()'')' 。mysqli_connect_error()); }'。 '或'基本上是指「if(!thingLeftHandside)'。 – KillaBilla