簡體   English   中英

PHP / MySQL問題的where子句中的未知列“…”

[英]Unknown column '…' in 'where clause PHP/MySQL issue

我在本地服務器上測試的程序有問題。 每次我在表單中輸入值並從下拉菜單中選擇課程時,都會收到錯誤消息(其中“ ....”是我選擇的課程名稱):

Unknown column '.....' in 'where clause'

EDIT2這是我用來創建具有完整索引的表的代碼:

include 'login.php';
$link = mysql_connect(HOST, USER, PASS) or die (mysql_connect_error());
mysql_select_db('graham', $link);

$query1 = "CREATE TABLE course (name VARCHAR(50), code VARCHAR(10), max INT(2))";
$query2 = "CREATE TABLE students (name VARCHAR(50), studentnum VARCHAR(50), FULLTEXT (name,studentnum))ENGINE=MyISAM";
$query3 = "CREATE TABLE enrolled (student VARCHAR(50), studentnum VARCHAR(50), course VARCHAR(50), FULLTEXT (student,studentnum,course))ENGINE=MyISAM";

$result1 = mysql_query ($query1, $link) or die(mysql_error());
$result2 = mysql_query ($query2, $link) or die(mysql_error());
$result3 = mysql_query ($query3, $link) or die(mysql_error());

$querya = "ALTER TABLE students ADD FULLTEXT(name)";
$queryb = "ALTER TABLE students ADD FULLTEXT(studentnum)";
$queryc = "ALTER TABLE enrolled ADD FULLTEXT(student)";
$queryd = "ALTER TABLE enrolled ADD FULLTEXT(studentnum)";
$querye = "ALTER TABLE enrolled ADD FULLTEXT(course)";

$result4 = mysql_query ($querya, $link) or die(mysql_error());
$result5 = mysql_query ($queryb, $link) or die(mysql_error());
$result6 = mysql_query ($queryc, $link) or die(mysql_error());
$result7 = mysql_query ($queryd, $link) or die(mysql_error());
$result8 = mysql_query ($querye, $link) or die(mysql_error());




$query4 = mysql_query("INSERT INTO course (name, code, max) 
VALUES
('HTML', 'PROG-1288', 4),
('Javascript', 'PROG-2283', 3),
('Dreamweaver','MEDA-1380', 4),
('Photoshop','PHOT-1382', 3)") or die (mysql_error());

$query5 = mysql_query("INSERT INTO students (name, studentnum) 
VALUES
('GerrardLooper', 987654),
('BruceLee', 123456),
('JoeSchmoe', 236728),
('JaneDoe', 111222),
('JoeSchmoe', 128790)") or die (mysql_error());

$sql = "SELECT name FROM course";
$result = mysql_query($sql) or die (mysql_error());


echo "<form action='index.php' method='post'><pre>";
echo "Please select a course: ";
echo "<select name='coursename'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['name'] ."'>" . $row['name'] ."</option>";
}
echo "</select>";
echo "\nStudent Name <input type='text' name='studentname' />";
echo "\nStudent Number <input type='text' name='studentnum' />\n";
echo "<input type='submit' name='addrecord' value='ADD RECORD' />";
echo "</pre></form>";

mysql_close($link);

這是我嘗試將用戶選擇的內容與表中的數據進行匹配時使用的代碼:

//check if name and student number match the records in the database
$name1 = mysql_real_escape_string($_POST['studentname']);
$num = mysql_real_escape_string($_POST['studentnum']);
$qw = "SELECT name FROM students WHERE MATCH (name) AGAINST ('".$name1."')";
$qw1 = "SELECT studentnum FROM students WHERE MATCH (studentnum) AGAINST ('".$num."')";
$namematch = mysql_query($qw) or die(mysql_error());
$nummatch = mysql_query($qw1) or die(mysql_error());

if (($namematch || $nummatch) == FALSE) {
    die('Name or student number do not match those on record');
}

MATCH(...)AGAINST語法只能與FULLTEXT索引一起使用。 嘗試將FULLTEXT索引添加到您的相關列中,如下所示:

ALTER TABLE students ADD FULLTEXT(name);
ALTER TABLE students ADD FULLTEXT(studentnum);

工作sqlfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM