【问题标题】:Error: Unknown column 'Array' in 'field list' [closed]错误:“字段列表”中的未知列“数组”[关闭]
【发布时间】:2013-04-23 09:39:34
【问题描述】:

我在尝试执行该过程时遇到错误:“字段列表”中的未知列“数组”。我对 php 还是很陌生,所以我想知道我的编码有什么问题。

这是先编码。

<?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()?

【问题讨论】:

    标签: php mysql xampp


    【解决方案1】:

    问题来了..

    $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 都是数组。

    我认为您正在尝试这样做..

    $r = mysql_fetch_array($q);
    $r = $r["bachok_qtt"];
    

    【讨论】:

    • 它有效..谢谢先生..所以这意味着当我输入 $r = $r["bachok_qtt"];所以变量是int?
    • @AshwiniAgarwal 不完全是。 MySQL 中的数据类型不会在 PHP 中转换。不要忘记 PHP 是一种弱类型语言...
    • @BenM。那么他必须将变量转换为int
    • 再说一遍,不一定。
    • 那么..??如果变量包含字符串怎么办?
    【解决方案2】:

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

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

    $r["bachok_qtt"];
    

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

    $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如下:

    $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_* 的一些安全风险。

    【讨论】:

    • 非常感谢 BenM 先生 .. 我是 php 的初学者,实际上正在尝试自己学习这个..
    【解决方案3】:

    我想你可以看看$r["bachok_qtt"]; 也许你想说$r = $r["bachok_qtt"];

    【讨论】:

    • 谢谢大家,但我已经像你说的那样解决了这个问题。Ashwini 先生之前已经纠正了我。谢谢 ..^^
    【解决方案4】:

    给你,我修正了你的错误。试试这个

     <?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);
    
      }
    
     $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);
    
     }       
    
     $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);
    
     }    
    
     $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);
    
     }    
    
    
     if ($r["bachok_qtt"] < $a["stock_qtt"])
     {
     if($s["bachok_qtt"] < $b["stock_qtt"])
     {
        $sql1 = "UPDATE stock SET stock_qtt = stock_qtt - '".$r["bachok_qtt"]."'  WHERE stock_type = 'pants' ";
        $sql2 = "UPDATE stock SET stock_qtt = stock_qtt - '".$s["bachok_qtt"]."'  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>";
     }
    
      ?> 
    

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 2017-11-22
      • 2013-04-09
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      相关资源
      最近更新 更多