PHP中的长字符串Mysql查询不起作用

时间:2015-04-20 00:51:49

标签: php mysql

我正在尝试从一个非常长的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);

1 个答案:

答案 0 :(得分:2)

您的查询表达式是:

WHERE ZaP_SN = %s

将值放入:

WHERE ZaP_SN = 44444444-44444444-33333333-33333333

这被解释为数字表达式。你有两个解决方案。不太喜欢的方法是添加单引号:

WHERE ZaP_SN = '%s'

更好的方法是使用查询中的参数传入字符串。