我几乎读过网络上关于'where子句中的未知列'dfsd'的每一个线程 dfsd是我使用post方法通过html表单输入的字符串。 php文件(表单数据发送的位置)只检查上面的行是否是现有的用户名。
function authCheck($usr,$psw){
print $usr;
mysql_real_escape_string($usr);
$sql = "select usrNameMarket from marketusr where usrNameMarket=$usr";
$result = mysql_query($sql) or die(mysql_error());
$records=mysql_num_rows($result); //elenxw gia eggrafes
if($records){
$queryData=mysql_fetch_array($result);
if($queryData['usrNameMarket']==$usr){
$usrNameChk="ok";
}
else{
$usrNameChk=null;
}
}
else{
$usrNameChk=null;
}
rest of the file ....
我从MySQL那里得到错误告诉我该列不存在(虽然该值已经正确传递,这就是为什么我使用print函数只是为了仔细检查它)...
我添加单引号:
$sql = "select usrNameMarket from marketusr where usrNameMarket='$usr'";
然后当mysql_query执行时出现语法错误...
然后我试了
$sql = "select usrNameMarket from marketusr where usrNameMarket='".$usr."'";
我仍然遇到相同的语法错误。
我不知道出了什么问题我已经尝试了一切...... 由于数据库结构或方案或该字段的数据类型(varchar),我是否可能得到该错误?
答案 0 :(得分:0)
使用marketusr.usrNameMarket
代替usrNameMarket
答案 1 :(得分:0)
尝试:
$sql = "select usrNameMarket from marketusr where usrNameMarket='$usr'";