2015-04-22 50 views
-1

我需要重寫我的php代碼,以便它不使用本機驅動程序php5-mysqlnd。php循環通過結果,而不使用本機驅動程序

在我的機器我的代碼工作正常,因爲我已經安裝PHP5-mysqlnd,但只要我安裝我的VPS主機的話,Apache的失敗在PHP5-mysqlnd並不會啓動。所以我需要把所有東西都擦掉,並安裝新的服務器。這與Plesk有關,我不在乎那些細節我知道我不能使用php5-mysqlnd,所以我只需要我的php就可以在沒有它的情況下工作。

所以我不在乎每個人都說這是錯誤的技術,我不在乎人們是否說這是一種舊技術。

下面的代碼在我的開發機器上工作,我需要重寫它沒有本地驅動程序,我該怎麼做?

$db = new mysqli($_SESSION["DB_HOST"], $_SESSION["DB_USERNAME"], $_SESSION["DB_PASSWORD"], $_SESSION["DB_DATABASE_NAME"]) or die('Cannot connect'); 

$stmt = $db->prepare("call get_languages(?)"); 
$stmt->bind_param('i', $iLanguageId); 
$stmt->execute(); 

if ($result = $stmt->get_result()) { 
    while ($row = $result->fetch_assoc()) 
    { echo "<p>" . $row['language'] . "</p>"; } 
    $result->free_result(); 
} 
else 
{ echo '<h2>Error: No languages listed.</h2>'; } 
+0

事實上,這是plesk中的一個[bug](https://plesk.uservoice.com/forums/184549-feature-suggestions/suggestions/6009360-mysqlnd-support-for-plesk-11-5),但是自從然後解決了一段時間。聽起來你很想在這裏做什麼,所以不要害怕所有的倒票。看起來你並不關心你使用php的sql原生驅動程序所遇到的所有問題,以及你不得不面對不使用它的缺點。在谷歌上找到的所有MySQL/PHP教程中,有70%包含原始的MySQL API。你是否有時間來閱讀這些問題? – dbf

+0

我發現了很多教程,但其中的每個人都使用本機驅動程序。在那裏可能有一個教程沒有它,如果你知道它,那麼只需添加鏈接。 – Matthew

回答

0

如果這是你想要的,你可以卸載php5-mysqlnd切換回libmysqlclient。

另一種選擇是使用PDO驅動程序並重寫代碼以使用PDO。

+0

一個問題是有些命令不起作用。 $ result-> fetch_assoc() 我覺得這個命令是我遇到的問題,因爲它僅限於本地驅動程序,所以如何在沒有它的情況下循環訪問結果集。 – Matthew

+0

$ stmt-> get_result()在沒有本機驅動程序的情況下不起作用 – Matthew

+0

然後,您應該整理Plesk問題(已解決?)或將代碼切換到使用PDO庫(以及PDO驅動程序)。 – vdwijngaert