私はPHPを使用してウェブサイトを作成していますが、SQLクエリーに問題があります。ページが空白になる原因となるSQLクエリー
これはコードである必要がありますが、ページが空白になる(つまりすべてが白く表示されます)。私はダブルチェックして、web_id
は間違いなく正しい名前と正しい場合です。
たとえば、 'foo'(基本的にはweb_id
以外のもの)のクエリをweb_id
に変更すると、ページが表示されますが、 'where句'の 'Unknown column' foo ' "
これを引き起こしている可能性がある人はいますか?ここで私は、テーブルのテストを作成するコードです:
$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上で出力URLに対して数回繰り返し、ライン113"
、EXP、出力、endUrlStart、endUrlEnd、データソース、datasourcenameに、ポスト、画像とプリントライン113は、大きなリターンラインです。
問題は、これらの変数が定義されている限り、別のページに表示できるので、テーブルが空でないことがわかります。
はソート
を解決しました。問題は実際に私のコードの別の部分にありました - 私はgetOutputSQLを間違って呼び出していましたが、今修正しました!
クォート整数は害を与えません。 – Tomalak