查询返回 int 的结果,而不是字符串的结果


Query returns result for int not for string

所以现在我有一个ajax调用,它将ID从一个按钮发送到php脚本并返回食物结果。如果我使用 ItemID 和 int 调用它,它会返回 itemID 的行。但是,如果我像下面这样将其更改为 ItemName,它不会返回任何行。在 consol 中,当我使用 ItemName 时,实际上没有返回任何内容,但是如果我让它在$STMT之前打印编码$ID那么它表明正在传递正确的字符串

if(isset($_POST['ID']))
{
$ID = $_POST['ID'];
$stmt = $mysqli->query("SELECT * FROM  group2.menu  WHERE ItemName = $ID ");
if($stmt->num_rows) 
{  
$row = $stmt->fetch_assoc();
 echo $row;
print json_encode($row);    
}
}

AJAX(如果相关)

$('.check').click(function(){
var thisID    = $(this).attr('id');
alert(thisID);
$.ajax({
    type: "POST",
    crossDomain: true,
    url: "http://csmaster.sxu.edu/group2/group2/CougarLunch/retrieveColumn.php",
    data:{ ID: thisID},
    cache: false,
    async:true,
    datatype: "jsonp",
    success: function(data)
    {
        console.log(data);
        alert(data);
        // 
    }
  });
  }); 

按钮的 HtML 第一个有效,第二个不起作用

          <input type="checkbox" name="value" id="27" class="check">              
          <label for="27">pizza</label>
           <input type="checkbox" name="value" id="scrambled egg" class="check">             
          <label for="scrambled egg">Scrambled Egg</label>

ItemName 是一个 varchar 字段吗?如果是这样,你有没有尝试过用引号括住你的字符串?

$stmt = $mysqli->query("SELECT * FROM  group2.menu  WHERE ItemName = '$ID' ");