require_once не работает в одном файле, но работает в другом

У меня странная проблема с ошибкой

Неопределенная переменная: sqlConn

И это не может быть проблема с подключением к БД, потому что это выкрикивает еще одну ошибку, что еще более странно, что require_once, идентичный в файле, который находится в том же каталоге, работает просто отлично. Я даже не знаю, что думать. Вот один (РАБОЧИЙ) файл:

<?php require_once("connect.php");?>
<html>
<head>...
..........
...<?php
foreach($sqlConn->query('SELECT * FROM permatable') as $row) {
echo "<tr><td>".$row["Art"]."</td><td>".$row["Ime"]."</td><td>".$row["Uvoz"]."</td><td>".$row["Opis"]."</td><td>".$row["Cijena"]."</td></tr>";
}
?>

И другой (получая ошибку):

<?php require_once("connect.php");?>
<?php

if(isset($_POST["AddFromDB"], $_POST["ArtNo"])){
    addExisting($_POST["ArtNo"]);
} 
else if(isset($_POST["AddNew"], $_POST["Art"], $_POST["ImeProizvoda"], $_POST["Dobava"], $_POST["Cijena"])){
    newItem($_POST["Art"], $_POST["ImeProizvoda"], $_POST["Dobava"], $_POST["Cijena"]);
}
if(isset($_POST["clearList"])){
    clearPermaTB();
} 
else if (!isset ($_POST)){
    echo "error";
}

//Dodaj postojeci proizvod
function addExisting ($Art) {
    echo "5";
    //Trazi u bazi
    $result_set = $sqlConn->query("SELECT Art, Ime, Uvoz, Opis, Cijena FROM proizvod WHERE Art = '{$Art}'");

Итак, еще раз, оба находятся в одном и том же каталоге, оба используют одинаковый код, но по какой-то причине один получает ошибку, а другой нет.

Вот файл подключения:

    //Database Connection
$sqlConn =  new mysqli($server, $user, $pass, $name);
if ($sqlConn->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
?>

Я делаю ошибку синтаксиса sql?

1 ответ

Решение

Это потому что sqlConn выходит за рамки
Вы пытаетесь вызвать это из своей функции.

Вы можете передать его в качестве аргумента вашей функции или использовать global даже если это не очень хороший дизайн

Решение 1:

addExisting(xxx, $sqlConn);
// ...
function addExisting($Art, $sqlConn)
{
   // use $sqlConn here
}

Решение 2:

addExisting(xxx);
// ...
function addExisting($Art)
{
   global $sqlConn;
   // use $sqlConn here
}
Другие вопросы по тегам