【发布时间】:2010-10-12 07:23:38
【问题描述】:
我正在使用 php 创建一个网站,但我在使用 SQL 查询时遇到了一些问题。
$dataArray = array();
$result = mysql_query("SELECT * FROM test WHERE web_id='$websiteID'")
or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$k = $row['kfoo'];
$v = $row['vbar'];
$dataArray[$k] = $v;
}
这就是应该的代码,但是这会导致页面变为空白(即仅显示全白)。我已经仔细检查过,web_id 绝对是正确的名称和正确的大小写。
如果我将查询中的web_id 更改为,例如,'foo'(基本上不是web_id),那么页面将显示,但会显示错误消息“Unknown column 'foo' in ' where 子句'”。
有人知道是什么原因造成的吗?这是我创建表测试的代码:
$dataDB = "CREATE TABLE test
(
data_id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(data_id),
web_id INT,
kfoo TEXT,
vbar TEXT
)";
mysql_query($dataDB,$con);
更新
根据这里的一些答案,我删除了 $websiteID 周围的引号并使用
显示错误error_reporting(E_ALL);
ini_set('display_errors', 1);
这显示了很多错误,包括之前我已经修复的语法错误。但是,仍然存在许多错误,它们对我来说没有多大意义。这是我的方法的完整代码:
function getOutputSQL($websiteID,$userInput) {
$result = mysql_query("SELECT * FROM websites WHERE websiteID=$websiteID")
or die(mysql_error());
while ($row = mysql_fetch_array($result)){
$url = $row['url'];
$exp = $row['exp'];
$output= $row['textPrint'];
$endUrlStart = $row['outUrlStart'];
$endUrlEnd = $row['outURLEnd'];
$image = $row['image'];
$print = $row['print'];
$post = $row['post'];
$dataSource = $row['dataSource'];
$dataSourceName = $row['dataSourceName'];
}
// construct array of data names and values
$dataArray = array();
$result = mysql_query("SELECT * FROM test WHERE web_id=$websiteID")
or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$k = $row['kfoo'];
$v = $row['vbar'];
$dataArray[$k] = $v;
}
// construct array of expressions and replacements
$result = mysql_query("SELECT * FROM regex WHERE web_id=$websiteID");
$expArray = array();
while ($row = mysql_fetch_array($result)) {
$e = $row['ex'];
$r = $row['re'];
$expArray[$e] = $r;
}
return getOutput($userInput,$url,$exp,$output,$endUrlStart,
$endUrlEnd,$dataSource,$dataSourceName,$post,$image,$print,
$expArray,$dataArray);
}
我遇到的错误都是这样的——
注意:未定义的变量:在 /home/daniel/web/resultsTest.php 第 113 行输出“
对于 url、exp、output、endUrlStart、endUrlEnd、dataSource、dataSourceName、post、image 和 print 重复几次第 113 行是大返回行。
问题是,据我所知,这些变量已定义,并且我知道表格不是空的,因为我可以在另一个页面上显示它。
已解决
已排序。问题实际上出在我的代码的另一部分——我错误地调用了 getOutputSQL,但我现在已经修复了它!
【问题讨论】: