У меня есть этот простой, но запутанный вопрос, специально для людей, которые являются самообучающимися программистами, такими как мои ...
Я читал разные документы в PHP.NET и MYSQL.COM, все они объясняют, как открыть и как закрыть его, но для этого вопроса, который действительно не помогает, по крайней мере для меня.
Правильный способ открыть и закрыть запросы mysqli
Путь, который я узнать это, как следовать
Я требую файла на мой conecction, такие как dbconnection.php или DB.php имя не матер, но содержание, так вот что я всегда делать ...
<?php
// con.php
$host = 'localhost';
$us = 'root'; // or whatever name for the user
$ps = 'abcd'; // your password
$db = 'abc'; // The name of your DB
$con = mysqli_connect ($host, $us, $ps, $db);
if (mysqli_connect_errno()) {
echo "DB server offline: ". $mysqli->connect_error;
exit();
}
Так что мой Conection к моей БД, теперь позволяет получать некоторые арбузы
<?php
include ('con.php');
// Lets get our varibales $_GET or $_POST
// Lets clean our variables
// Lets make sure that the data is what we expect, numbers and letters
// because thats how I roll!
$query_one = "SELECT * FROM table 1 WHERE id = 1";
$r_one = mysqli_query($con, $query_one);
$rows = mysqli_fetch_assoc($r_one);
// now lets echo the results, or print_r() or json()...
mysqli_close($con); // this is pretty straight forward i think...
Теперь вот моя путаница ...
<?php
include ('con.php');
// Lets get our varibales $_GET or $_POST
// Lets clean our variables
// Lets make sure that the data is what we expect, numbers and letters
// because thats how I roll!
$query_one = "SELECT * FROM table_1 WHERE id = '$ids'";
$r_one = mysqli_query($con, $query_one);
$rows = mysqli_fetch_assoc($r_one);
// If I closed here the second query doesn't get executed...
if ($rows['publish'] == 1) {
$query_two = "SELECT * FROM table_2 WHERE id_user = '$ids' AND items = '$items'";
// lets do some foreach or while
// If I closed here the first query still open...
}
// If I close here
mysqli_close($con); // Am I closing both queries?
// Let get some more data
// Should I close my third query
mysqli_close($con);
// hasn't this been close already? which mean that the third query never got
the change to execute... correct?
Так как вы можете видеть, в MYSQL.com он расскажет вам, как закрыть его, и PHP.net почти то же самое, но это не говорит вам, когда, чтобы закрыть его ..
если a = 1 сделать запрос, тогда закройте его ...
else if a = 5 сделать другой запрос, а затем закрыть его, это очень просто, я думаю, но что, если один из моих запросов ретранслирует информацию из другого запроса ...
если a = 1 сделать запрос
делать что-то еще и многое другое n из IF's тогда
, если результатом второго запроса был B сделать другой запрос ... и так далее ...
Возможно, я просто передумал это, тогда есть другой способ открыть или закрытая MySQLi
$con_one = conectTodb();
// queries
$con_one ->close();
, если у вас есть 3 запросов, con_one, con_two, con_three, то вам придется закрыть один за другим, как con_one-> близко(), con_two-> близко(), con_three-> близко () ... и так далее ... правильно?
Я прошу об этом, потому что несколько часов. назад У меня была ошибка, сообщающая мне, что было слишком много соединений с базой данных, и для этого не удалось обработать информацию ... Это явка была ошибкой конфигурации сервера, , которая заставила меня думать, что Я собираюсь сделать, если это была реальная ситуация! ??? что делать, если пользователь что-то покупает, а потом POW !!! слишком много соединений, данные потеряны ... только что из этого даст некоторые ночные кошмары
Я не знаю ... мой мозг пропарился прямо сейчас ... может кто-то пожалуйста! объясните это мне, если не много спросить, пожалуйста, приведите несколько примеров ...
большое спасибо!
pd. на локальном хосте максимальное число соединений 10 (IIS, WAMP, XAMP) ... на хосте акцию я считаю 25 ...
Соединения автоматически закрываются при завершении запроса; поэтому вам нужно подключиться в начале каждого запроса;). –