Я сделал функцию в PHP, чтобы захватить информацию из базы данных MySQL, но я не уверен в чем-то.PHP Function Calling MySQL
В настоящее время функция выглядит следующим образом:
function profile_info($option, $size = NULL){
// MySQL Connection Info
$mysql_hostname = "";
$mysql_username = "";
$mysql_password = "";
$mysql_database = "";
$mysql_table = "";
// MySQL Connect
$con = mysqli_connect($mysql_hostname,$mysql_username,$mysql_password,$mysql_database);
// Check the Database Connection
if (mysqli_connect_errno()){
echo (mysqli_connect_error());
}
// Define UID
$uid = $_SESSION['login'];
// Deploy Query
$result = $con->query("SELECT * FROM $mysql_table WHERE uid='$uid'");
// Define Row For All Data
$row = $result->fetch_assoc();
if($option == "firstname"){
echo $row['first_name'];
}
if($option == "lastname"){
echo $row['last_name'];
}
if($option == "nickname"){
echo $row['nick_name'];
}
if($option == "email"){
echo $row['email'];
}
if($option == "dob"){
echo $row['date_of_birth'];
}
if($option == "status"){
echo $row['status'];
}
if($option == "gravitar"){
echo ("http://www.gravatar.com/avatar/" . md5(strtolower(trim($row['email']))) . "?d=mm&s=" . $size);
}
$result->close();
$con->close();
}
Я проверил его и он работает отлично.
Теперь, на мой вопрос, он делает новое подключение к базе данных каждый раз, когда я звоню profile_info
?
Если да, то как его исправить, чтобы он только один раз вызывал базу данных для всей информации.
Привет, Tim
Да, он создает новое соединение при каждом вызове функции, запросы и затем закрывает это соединение. Чтобы исправить это, подключитесь к базе данных вне функции и передайте соединение в функцию. –
Мне нравится, как все на SO признали, что использование 'mysql_' функций - это плохая практика, а затем продолжает писать сломанный код с помощью mysqli. –