Где закрыть MySQL Connection на PHP

Я новичок в PHP и MySQL, и у меня есть вопрос о mysql_connect и mysql_close

Вот мой код (functions.php):

$link = mysql_connect("localhost","root","") or die("error");
mysql_select_db("dbName",$link) or die("error 2");
mysql_query("SET NAMES UTF8");

function get_title($param)
{
        //top of the function
    $sql = sprintf("SELECT title FROM pages WHERE id='%s'",
    mysql_real_escape_string($param));
    $result = mysql_query($sql);
    $title = mysql_result($result, 0,0);
    echo trim($title);
        //inside the function
        //bottom of the function
}
//under the function

Я вызываю эту функцию из page.php. Но я не уверен, где закрыть эту связь. Должен ли я закрыть его внутри функции? Должен ли я закрыть его под функцией? Должен ли я подключиться вверху функции и закрыть нижнюю часть функции?

Кстати, не стесняйтесь, чтобы сделать мой код лучше.

2 ответа

Решение

Вы можете изменить эту часть

$result = mysql_query($sql);
$title = mysql_result($result, 0,0);
echo trim($title);

в

$result = mysql_query($sql) or some_exception_function("ERROR IN QUERY:".$sql."<br>".mysql_error()); // here you can send an email with error, or whatever you want, if some error occurs
$row = mysql_fetch_array($result);
$title = $row['title']; // so you always fetch desired column by it's name
echo trim($title);

и как сказал @fred-ii, нет необходимости закрывать соединение mysql

Помните, что когда вам нужно закрыть соединение с БД, сначала убедитесь, что вы пишете все сценарии выше функции close, в этом случае запишите его в функцию, предполагая, что вам после этого соединение не понадобится.

function get_title($param)

{

        //top of the function

    $sql = sprintf("SELECT title FROM pages WHERE id='%s'",

    mysql_real_escape_string($param));

    $result = mysql_query($sql);

    $title = mysql_result($result, 0,0);

    echo trim($title);

         //inside the function

       //bottom of the function

        //close connection here ......
       mysqli_close($link);


}
Другие вопросы по тегам