Кажется, что одна и та же переменная имеет разные значения в разных частях кода PHP [duplicate]

0

Я использую очень простой код для извлечения данных из базы данных MySQL в файл CSV. Код не дал ожидаемого результата, поэтому я сделал код, включающий запрос в CSV файл. В первой части кода кажется, что переменная, содержащая результат запроса, на самом деле не содержит никакого значения, но в другой части кода переменная содержит правильное значение. Короче говоря, одна и та же переменная содержит два значения в разных частях кода.

$sql="SELECT destinazione AS dest,ndc AS n FROM npitz";
$query = mysql_query($sql);

$q="ERROR";
while($row = mysql_fetch_array($query)) {
$query="DELETE FROM npitz_reduced_tmp WHERE 
        destinazione='".$row['dest']."' AND 
        ndc LIKE CONCAT('".$row['n']."','%') AND 
        ndc NOT LIKE '".$row['n']."'";
if($row['n']='77') $q=$query."   -   ".$row['n'];
mysql_query($query);
}

Переменная $ row ['n'] должна содержать результат запроса SQL. После цикла while переменная $ q имеет вид:

DELETE FROM npitz_reduced_tmp WHERE destinazione='UNITED STATES' AND ndc LIKE CONCAT('','%') AND ndc NOT LIKE ''   -   77

Вопрос в том, что если в операторе IF значение $ row ['n'] равно '77', то почему оно не совпадает с присваиванием переменной $ query?

  • 1
    $row['n']='77' устанавливает значение $row['n'] равным '77' - = устанавливает значения, но не сравнивает их
  • 1
    пока вы в этом (руки в коде), вы действительно должны сбросить mysql_ api ... он устарел, и вы лишаете себя многих полезных / необходимых характеристик безопасности современного php с использованием либо mysqli либо PDO api и драйверов.
Теги:

1 ответ

1

Вы, вероятно, должны использовать == вместо = в операторе if

  • 0
    Какая глупая ошибка :-D
  • 0
    Слишком много времени с момента моего последнего кодирования ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню