我正在尝试从一个非常长的URL参数查询数据库,该参数看起来像这样44444444-44444444-33333333-33333333
当我将文本回显到页面时,它看起来是正确的,但是当我在查询字符串中尝试它时,它总是返回相同的结果。
是什么导致这个?
下面是php查询。
}
$colname_Recordset1 = "-1";
if (isset($_GET['ZaP_SN'])) {
$colname_Recordset1 = $_GET['ZaP_SN'];
echo $colname_Recordset1;
}
mysql_select_db($database_MyDB, $MyDB);
$query_Recordset1 = sprintf("SELECT * FROM assingments WHERE ZaP_SN = %s", GetSQLValueString($colname_Recordset1, "int"));
$Recordset1 = mysql_query($query_Recordset1, $zaprompt) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
答案 0 :(得分:2)
您的查询表达式是:
WHERE ZaP_SN = %s
将值放入:
WHERE ZaP_SN = 44444444-44444444-33333333-33333333
这被解释为数字表达式。你有两个解决方案。不太喜欢的方法是添加单引号:
WHERE ZaP_SN = '%s'
更好的方法是使用查询中的参数传入字符串。