我正在使用mysql_error()
运行PHP查询中的sqlUnknown column '' in 'field list'
查询:
SELECT `standard` AS fee FROM `corporation_state_fee` WHERE `stateid` = '8' LIMIT 1
当我在PHPmyadmin中运行查询时,它返回信息而不标记错误
编辑: 我为没有发布足够的信息而道歉;以下是问题所在的整个代码块
switch($lid){
case '460':
$tbl = $corporation_state_fee_tbl;
break;
case '535':
$tbl = $llc_state_fee_tbl;
break;
default:
return 0;
break;
}
var_dump("SELECT `".$processing."` AS fee FROM `".$tbl."` WHERE `stateid` = '".$state."' LIMIT 1");
$sql = mysql_query("SELECT `".$processing."` AS fee FROM `".$tbl."` WHERE `stateid` = '".$state."' LIMIT 1") or die(mysql_error());
$row = mysql_fetch_array($sql);
$fee = $row['fee'];
include(CONN_DIR."disconnect.php");
,输出为:
string(83)“SELECT
standard
AS费用来自corporation_state_fee
WHEREstateid
='8'限制1” “字段列表”中的未知列“”
答案 0 :(得分:0)
简单的答案是您发布的查询不是生成错误的查询。
错误消息是否未提供正在尝试的查询的完整文本?你确定它甚至这个查询产生了错误吗?可能是同一执行中的另一个。
答案 1 :(得分:0)
在您的查询执行之前,请放置以下声明:
die($query);
假设$ query包含您的查询,这将显示完全您要执行的内容。
如果一切顺利,那么在执行查询后立即执行die()。如果您没有收到错误,那么您需要在代码中进一步查找问题。
答案 2 :(得分:0)
让我们再添加一些测试和调试输出......
switch($lid){
case '460':
$tbl = $corporation_state_fee_tbl;
break;
case '535':
$tbl = $llc_state_fee_tbl;
break;
default:
return 0;
break;
}
if ( !isset($processing, $tbl, $state) ) {
die("something's missing");
}
// hopefully _all_ those variable parts are "safe"?
// use multiple lines so the error location is a bit more expressive
// ... and I find it easier to read this way
$query = "
SELECT
`".$processing."` AS fee
FROM
`".$tbl."`
WHERE
`stateid` = '".$state."'
LIMIT
1
";
// please copy&paste the output of the next line
echo '<pre>Debug: query=', htmlspecialchars($query), '</pre>';
$sql = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($sql);
if ( false===$row ) {
// no such record
return 0;
}
$fee = $row['fee'];
include(CONN_DIR."disconnect.php");