![](/img/trans.png)
[英]PHP mysqli_connect not working but mysql_connect is working fine
[英]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 mysqli_connect(... int $ port = ini_get(“ mysqli.default_port ”)...)
如果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_connect和mysql_connect采用不同的參數並返回不同的值。
考慮使用
$dbc= new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.