2012-04-13 68 views
0

我正在製作一個網站,可以輕鬆共享公共PGP密鑰。該網站在後端使用PHP和MySQL,在前端使用JavaScript。該網站在localhost上正常工作,但我剛剛將其上傳到TuxFamily,並且它不起作用。MySQL命令在本地工作,但上傳到TuxFamily時失敗

我無法找出問題與我的查詢有什麼關係,因爲我無法訪問由MySQL或PHP生成的任何錯誤信息。我只留下猜測的問題是什麼,我有一種感覺它的查詢...

反正這裏的代碼:

的index.php:http://pastebin.com/TqJryvC2

INC/pgpshare.class。 PHP:http://pastebin.com/XXMv2PjK

的PHP能夠正確地創建一個MySQL連接,並在pgpshare.class.php所有功能似乎工作如預期,除了if($user1key = $pgpshare->GetUser1Key($id))(的index.php:14)。

請幫我弄清楚爲什麼這是失敗的。

在此先感謝;)

+0

什麼讓你覺得你沒有訪問'$ mysqli-> error'?你也嘗試過使用'error_reporting(E_ALL),ini_set('display_errors','1')'來查看PHP錯誤嗎? – MrCode 2012-04-13 12:16:08

+0

爲什麼你最近在回覆你寫的索引文件中的錯誤信息?它會告訴你可能是id是無效的....第一個看到它返回false的地方。 爲什麼你不能訪問mysqli錯誤? – itachi 2012-04-13 12:24:08

+0

我試圖訪問$ mysqli->錯誤,在這種情況下$ pgpshare-> mysqli->錯誤,但從來沒有任何輸出:( – 2012-04-13 12:32:13

回答

0

您應該打印出來的錯誤,例如與mysqli- $>錯誤,如果不工作,你可以隨時添加類似的東西:

$mysqli = new mysqli($1, $2, $3, $4)or die('Connection error: '.$mysqli->error); 
$stmt = $mysqli->prepare($sql)or die('Prepare failed: '.$mysqli->error); 
$stmt->bind_params($1, $2)or die('Bind_param failed: '.$stmt->error); 

即使mysqli->錯誤是空的,你會一直知道哪個函數失敗。 並確保您在函數中使用$ stmt-> error(在您的情況下爲$ query-> error)執行prepare函數。

$ query-> bind_param(「ssss」,$ id,$ key,$ user2key,$ ip);

我想的$ id是一個整數所以用 「我」:

$query->bind_param("isss", $id, $key, $user2key, $ip); 

也不要忘記更改連接數據(主機,用戶, pw,db)更改爲另一臺服務器。

- 民鼎

相關問題