我正在将一个JSONArray.toString()发布到php文件中。 JSONArray包含一组id值。我想创建一个只返回jsonarray中包含id的行的mysql查询。我的方法不起作用。还有另一种方式吗?
$jsonarray= $_POST["ids"];
$query = mysql_query("SELECT * FROM table WHERE id IN $jsonarray")or die(mysql_error());
答案 0 :(得分:5)
如果我们有一个JSON数组的例子,它会有所帮助,但是,您应该将JSON数组解码为逗号分隔列表以与IN一起使用。
$jsonarray = $_POST["ids"];
$ids = implode(",", json_decode($jsonarray,true));
$query = mysql_query("SELECT * FROM table WHERE id IN ($ids)")or die(mysql_error());
此外,您应该使用mysqli或PDO_MySQL进行新开发:
建议使用mysqli或PDO_MySQL扩展。它 不建议使用旧的mysql扩展进行新开发。 下面提供了详细的特征比较矩阵。整体而言 所有三个扩展的性能被认为是关于 相同。虽然扩展的表现只有一个 PHP Web请求的总运行时间的一部分。通常,影响 低至0.1%。
相关阅读:
答案 1 :(得分:0)
回显$ jsonarray的内容,当你检查MySQL查询的语法时会看到错误