Соединение с mysqli () не работает, почему?

У меня странная проблема при подключении к базе данных mysql в Microsoft Azure. Когда я использую эту команду для подключения к базам данных, запросы работают успешно.

$con = mysql_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database"); mysql_select_db($mysql_db_database, $con) or die("Could not select database"); 

Но когда я использую эту команду, это не сработает:

 $con = new mysqli($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database); if ($con->connect_error) { die("Database selection failed: " . $con->connect_error); } 

Я не получаю сообщение «Ошибка выбора базы данных:». $ Con-> connect_error. Любая идея, почему первый код работает, а не другой?

Я использую соединение для этого PHP-кода:

 <?php require_once ("/connect.php"); if(isset($_POST['username']) && !empty($_POST['username'])){ $username=mysql_real_escape_string($_POST['username']); }else{ $message[]='Please enter username'; } if(isset($_POST['password']) && !empty($_POST['password'])){ $password=mysql_real_escape_string($_POST['password']); }else{ $message[]='Please enter password'; } $countError=count($message); if($countError > 0){ for($i=0;$i<$countError;$i++){ echo ucwords($message[$i]).'<br/><br/>'; } }else{ $query="select * from users where username='$username' and password='$password'"; $res=mysql_query($query); $checkUser=mysql_num_rows($res); if($checkUser > 0){ echo 'correct'; }else{ echo ucwords('please enter correct user details'); } } 

Вы не можете смешивать и сопоставлять функции mysql_ * и mysqli_ *. Либо вы используете ALL mysql_ * (устаревший), либо используете ВСЕ функции mysqli_ *. По-видимому, вы изменили соединение, но еще не изменились, например, mysqli_query в mysqli_query и т. Д.

Обратите внимание, что между двумя API-интерфейсами необязательно соответствие 1-к-1. Другими словами, вы не можете просто добавить «i» и надеяться, что он всегда будет работать – есть некоторые концептуальные и синтаксические и т. Д. Изменения, которые вам нужно будет учитывать.

В любом случае, посмотрите на каждое появление «mysql_» в вашем PHP-коде и преобразуйте его в функции «mysqli_ *», и это должно решить вашу проблему.