簡體   English   中英

為什么mysqli_connect不工作但mysql_connect是?

[英]Why isn't mysqli_connect working but mysql_connect is?

有什么理由可能出現這種情況嗎?

這是代碼:

$dbc = mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
echo $dbc;
if(!$dbc){
die('could not open a connection'.mysqli_connect_errno() . mysqli_connect_error());
}

再次,如果我用mysql替換mysqli,我得到一個返回的dbc資源id(我認為這很好)。 我想使用mysqli,因為我聽到它更好/更快。 現在我收到錯誤代碼2003。

mysql_connect()mysqli_connect()使用php.ini文件中的兩個不同的默認端口。 我不認為這些將與標准默認3306不同,但值得檢查或嘗試添加到主機URL的路徑。

mysqli_connect

mysqli mysqli_connect(... int $ port = ini_get(“ mysqli.default_port ”)...)

mysql_connect

如果PHP指令mysql.default_host未定義(默認),則默認值為“localhost:3306”。 在SQL安全模式下,將忽略此參數,並始終使用值“localhost:3306”。

編輯:我錯了,因為我沒有閱讀手冊頁足夠遠。

我認為您的連接很好,但您不希望檢查它返回的對象,如上所述。 你想使用 mysqli_connect_errno() 以下是PHP.net的示例。

 
 
 
  
  $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); if (mysqli_connect_error()) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); }
 
  

注意:
僅限OO語法:如果連接失敗,仍會返回對象。 要檢查連接是否失敗,請使用mysqli_connect_error()函數或mysqli-> connect_error屬性,如前面的示例所示。

資源

mysqli_connectmysql_connect采用不同的參數並返回不同的值。

考慮使用

$dbc= new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM