我在收到错误时遇到了这个奇怪的问题
未定义的变量:sqlConn
它不能成为DB问题的连接,因为它会喊出另一个错误,甚至更奇怪的是,在同一目录中的文件中相同的te require_once工作得很好。我甚至都不知道该怎么想。 这是一个(WORKING)文件:
<?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语法错误?
答案 0 :(得分:2)
那是因为sqlConn
超出了范围
你试图从你的功能中调用它。
您可以将其作为参数传递给您的函数或使用global
即使它不是一个好的设计
解决方案1:
addExisting(xxx, $sqlConn);
// ...
function addExisting($Art, $sqlConn)
{
// use $sqlConn here
}
解决方案2:
addExisting(xxx);
// ...
function addExisting($Art)
{
global $sqlConn;
// use $sqlConn here
}