首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:'field list‘中的列'Array’未知

错误:'field list‘中的列'Array’未知
EN

Stack Overflow用户
提问于 2013-04-23 17:39:34
回答 4查看 5.1K关注 0票数 1

我得到了错误:未知的列‘数组’在‘字段列表’当尝试执行进程。我仍然是新手php,所以我想知道我的编码有什么问题。

这是编码的第一步。

代码语言:javascript
运行
复制
<?php
include("dbconnect.php");


$q = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'pants' ");
if(is_resource($q) and mysql_num_rows($q)>0)
{
    $r = mysql_fetch_array($q);
    $r["bachok_qtt"];
}

$w = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'clothes' ");
if(is_resource($w) and mysql_num_rows($w)>0)
{
    $s = mysql_fetch_array($w);
    $s["bachok_qtt"];
}       

$e = mysql_query("SELECT stock_qtt FROM stock WHERE stock_type = 'pants' ");
if(is_resource($e) and mysql_num_rows($e)>0)
{
    $a = mysql_fetch_array($e);
    $a["stock_qtt"];
}    

$t = mysql_query("SELECT stock_qtt FROM stock WHERE stock_type = 'clothes' ");
if(is_resource($t) and mysql_num_rows($t)>0)
{
    $b = mysql_fetch_array($t);
    $b["stock_qtt"];
}    


if ($r < $a)
{
    if($s < $b)
    {
        $sql1 = "UPDATE stock SET stock_qtt = stock_qtt - $r  WHERE stock_type = 'pants' ";
        $sql2 = "UPDATE stock SET stock_qtt = stock_qtt - $s  WHERE stock_type = 'clothes' ";

        $result1 = mysql_query($sql1) or die ("Error: " . mysql_error());
        $result2 = mysql_query($sql2) or die ("Error: " . mysql_error());

        if($result1)
        {
            if($result2)
            {
            echo "Successful";
            echo "<br>";
            echo "<a href='admin2.php'>Back to main page</a>";
            }
        }
        else 
        {
            echo "ERROR";
        }
    }
}
else
{
    echo "Not enough stock";
    echo "<br>";
    echo "<a href='admin2.php'>Back to main page</a>";
}




?> 

那么,当我正确使用MySQL_fetch_array()时,为什么会抛出未知的列数组呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-23 17:53:25

我想你可以看看$r["bachok_qtt"];,也许你想说像$r = $r["bachok_qtt"];这样的话

票数 0
EN

Stack Overflow用户

发布于 2013-04-23 17:41:40

问题出在这里..

代码语言:javascript
运行
复制
$sql1 = "UPDATE stock SET stock_qtt = stock_qtt - $r  WHERE stock_type = 'pants' ";
$sql2 = "UPDATE stock SET stock_qtt = stock_qtt - $s  WHERE stock_type = 'clothes' ";

$r$s都是数组。

我想你是想这么做..

代码语言:javascript
运行
复制
$r = mysql_fetch_array($q);
$r = $r["bachok_qtt"];
票数 3
EN

Stack Overflow用户

发布于 2013-04-23 17:44:25

您的问题是将$r定义为数组,然后尝试在字符串中使用它。仔细查看您的代码,我实际上怀疑您希望将$r["bachok_qtt"]的值赋给一个变量,然后在查询中使用它。

例如,下面的代码什么也不做:

代码语言:javascript
运行
复制
$r["bachok_qtt"];

您应该按如下方式更新代码:

代码语言:javascript
运行
复制
$q = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'pants' ");
if(is_resource($q) and mysql_num_rows($q)>0)
{
    $r = mysql_fetch_array($q);
    $bachok_qtt = $r["bachok_qtt"];
}

$w = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'clothes' ");
if(is_resource($w) and mysql_num_rows($w)>0)
{
    $s = mysql_fetch_array($w);
    $bachok2 = $s["bachok_qtt"];
}    

然后您的SQL如下所示:

代码语言:javascript
运行
复制
$sql1 = "UPDATE stock SET stock_qtt = stock_qtt - $bachok_qtt  WHERE stock_type = 'pants' ";
$sql2 = "UPDATE stock SET stock_qtt = stock_qtt - $bachok2  WHERE stock_type = 'clothes' ";

您还应该注意到,mysql_*系列函数现在正处于弃用过程中,很快就会失效。您应该研究MySQLiPDO的使用,而不是在新代码中使用它们。它们不仅为桌面带来了长寿的好处,而且还消除了使用mysql_*的一些安全风险。

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

https://stackoverflow.com/questions/16165986

复制
相关文章

相似问题

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