首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >此购物车代码中的php代码出错

问此购物车代码中的php代码出错
EN

Stack Overflow用户
提问于 2015-07-18 12:03:41
回答 2查看 75关注 0票数 0

错误出现在我的代码中:-

代码语言:javascript
复制
<?php
session_start();
$page = 'index.php';
$connection = mysqli_connect("localhost","root","","cart");
if(mysqli_connect_errno())
{
    die("not connected to db ".mysqli_connect_error());
}
function product()
{
     $sql = "select id,name,description,price from products where quantity > 0 order by id DESC" ;
     $result = mysqli_query($connection,$sql);
     if(mysqli_num_rows($result))
     {
         echo 'no products to display';
     }
     else
     {
         while($row = mysqli_fetch_assoc($result))
         {
             echo '<div class="boxed">'.$row['name'].'<br>'.$row['price'].'<br>'.$row['description'].'<br>'.'</div>';
         }
     }
}
?>
<html>
<head>
<title>
</title>
<script>
.boxed {
  border: 1px solid green ;
}
</script>
</head>
<body>
<?php
product();
?>
</body>
</html>

错误是:

注意:未定义变量:第11行/Applications/XAMPP/xamppfiles/htdocs/cart.php中的连接 警告: /Applications/XAMPP/xamppfiles/htdocs/cart.php ()期望参数1为mysqli,在第11行的mysqli_query中为null 警告: /Applications/XAMPP/xamppfiles/htdocs/cart.php ()要求参数1为mysqli_result,在第12行的mysqli_num_rows中为null 警告:在第18行的/Applications/XAMPP/xamppfiles/htdocs/cart.php中,mysqli_fetch_assoc()期望参数1为mysqli_result,null

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-18 12:14:11

嗯,错误是正确的,$connection是不能从函数访问的。要在函数中访问它,必须使用global关键字,如下所示:

代码语言:javascript
复制
function product()
{
    global $connection;
    ...
}

由于第一个错误,其他错误正在停止。这也在this问题中得到了回答。

,但这并不是最佳实践,因为您可以在没有充分理由的情况下多次连接数据库。我建议您使用单例类,确保只有一个连接打开到数据库。这在 this described .中进行了描述。

票数 0
EN

Stack Overflow用户

发布于 2015-07-20 19:10:37

第一个答案是正确的,或者您可以将$connection传递给您的函数如下:

代码语言:javascript
复制
<?php
session_start();
$page = 'index.php';
$connection = mysqli_connect("localhost","root","","cart");
function product($connection){
    $sql = "select id,name,description,price from products where quantity > 0 order by id DESC" ;
    $result = mysqli_query($connection,$sql);
    if(mysqli_num_rows($result))
    {
        echo 'no products to display';
    }
    else
    {
        while($row = mysqli_fetch_assoc($result))
        {
         echo '<div class="boxed">'.$row['name'].'<br>'.$row['price'].'<br>'.$row['description'].'<br>'.'</div>';
        }
    }
}

...

product($connection);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31490962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档