2017-05-29 133 views
-1

我有這個錯誤,我已經看到了幾頁上如何解決它,增加最大連接變量,但我想知道是否有任何方式重試連接'n'拋出該錯誤之前的次數, 我正在使用mysqli創建我的連接。php-MySQL錯誤1040「太多連接」

我將是任何幫助,非常感謝你能給我弄的,如果可能的

更新

con.php

<?php $con = new mysqli("localhost", "root", "", "grmv"); 
if($conexion->connect_errno) { 
die ("Error: " . $con->connect_errno . "---" . $con->connect_error); 
} 
return $con; 
?> 


Products.php 
<?php 
      include"con.php"; 
      mysqli_query($con,"SET NAMES 'utf8'"); 
      $result=mysqli_query($con,"select * from bio, carac where idprod=5"); 
while($data=mysqli_fetch_array($result)){ 
.... 
} 
$conexion->close(); 
} 
?> 
+1

你能至少發佈我們的代碼來了解問題出在哪裏嗎?從這我們可以瞭解什麼? – Exprator

+1

如果您向我們展示您的代碼,以便我們可以確定您是否生成多個不必要的連接,那會更好一些 – RiggsFolly

+0

請閱讀[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic) 和[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask) 和[完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing -the-perfect-question /) 以及如何創建[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve) – RiggsFolly

回答

0

更一致如何做到這一點的想法方式是繼續使用面向對象的aproach,也是一個很好的習慣來使用綁定任何不可信的輸入,也許這裏不是特別的,但仍然是良好的做法。

$mysqli = new mysqli(
      $connectionData['DB_HOST'], 
      $connectionData['DB_USER'], 
      $connectionData['DB_PASSWORD'], 
      $connectionData['DB_NAME'] 
     ); 
$mysqli->set_charset('utf8'); 
$stmt = $mysqli->prepare("select * from bio, carac where idprod=?"); 
$stmt->bind_param('5'); 
$stmt->execute(); 
while ($result = $stmt->fetch()) { 
     // do stuff  
} 

$stmt->close(); 
+0

這不回答OP的問題,沒有來自外部的輸入進去的查詢所以聲明不是強制性的特殊案例。不錯的嘗試。 –

+0

$ stmt-> close();這是關鍵的區別,而不是我提到的約束力。 「不錯的嘗試」顯然沒有增加任何交談。 –