Одинаковые переменные в одном коде, будет ли mysql_query работать правильно?

#php #mysql

#php #mysql

Вопрос:

Мне интересно, могу ли я использовать 2 переменные с одинаковыми именами в одном коде, и это все равно будет работать, или мне нужно дать каждому запросу имя diff? (Я знаю, что это очень простой вопрос) 😉

Вот пример:

 $sql="DELETE FROM apps WHERE app_id='".$app_id."'";
mysql_query($sql) or die(mysql_error());

$sql="DELETE FROM statistics_apps WHERE app_id='".$app_id."'";
mysql_query($sql) or die(mysql_error());
  

Нужно ли мне менять вторую $sql на $sql2 ?

Спасибо!

Ответ №1:

Нужно ли мне менять второй $ sql на $ sql2?

Нет. если вы убедитесь, что выполнили $sql (version1) перед $sql (version2)
В этом нет необходимости.

С другой стороны, если вы делаете:

 $sql="SELECT * FROM apps WHERE app_id='".$app_id."'";
$result = mysql_query($sql) or die(mysql_error());

$sql="SELECT *  FROM statistics_apps WHERE app_id='".$app_id."'";
$result2 = mysql_query($sql) or die(mysql_error());
  

Вы должны защитить дескриптор $result запроса в разных переменных, если вы не извлекаете все строки из query1, прежде чем начать с query2.

Ответ №2:

пока вы вызываете свою первую mysql_query($sql) , прежде чем пополнять свою $ sql-переменную, это не проблема. Вы просто используете одну переменную, которой вы просто присваиваете другое значение 🙂

Ответ №3:

Вам не нужно изменять свою $sql переменную. Что вам нужно, так это сохранить возвращаемое значение mysql_query .

 $sql="DELETE FROM apps WHERE app_id='".$app_id."'";
$query1 = mysql_query($sql) or die(mysql_error());

$sql="DELETE FROM statistics_apps WHERE app_id='".$app_id."'";
$query2 = mysql_query($sql) or die(mysql_error());

var_dump(mysql_affected_rows($query1)); // deleted in apps
var_dump(mysql_affected_rows($query2)); // deleted in statistics_apps
  

Комментарии:

1. если ему не нужно возвращаемое значение, ему не нужно присваивать его переменной 🙂

Ответ №4:

Нет, вам не нужно иметь отдельную переменную для каждого запроса, если только вам не нужно / не хотите ссылаться на исходный запрос на более позднем этапе кода.

Ответ №5:

Нет, вы этого не делаете … потому что в конце это как написать, что:

 mysql_query("DELETE FROM apps WHERE app_id='".$app_id."'") or die(mysql_error());
mysql_query("DELETE FROM statistics_apps WHERE app_id='".$app_id."'") or die(mysql_error());
  

значение вашей переменной $sql изменено