我得到了错误:未知的列‘数组’在‘字段列表’当尝试执行进程。我仍然是新手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()时,为什么会抛出未知的列数组呢?
发布于 2013-04-23 17:53:25
我想你可以看看$r["bachok_qtt"];,也许你想说像$r = $r["bachok_qtt"];这样的话
发布于 2013-04-23 17:41:40
问题出在这里..
$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"];发布于 2013-04-23 17:44:25
您的问题是将$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_*系列函数现在正处于弃用过程中,很快就会失效。您应该研究MySQLi或PDO的使用,而不是在新代码中使用它们。它们不仅为桌面带来了长寿的好处,而且还消除了使用mysql_*的一些安全风险。
https://stackoverflow.com/questions/16165986
复制相似问题