【发布时间】:2014-09-25 14:20:29
【问题描述】:
在以下脚本中,我使用位置偏移绑定了所有参数,以处理 PDO 中的IN 子句。 $_POST["group"] 是一个数组。 Chrome 控制台显示表单数据中的数组中有 12 个值。 In 子句中问号的数量也对应于值的数量。一切似乎都很好。
SELECT a.id,a.likes,a.dislikes from `like_dislike` a
INNER JOIN `model_no` b ON a.id = b.id
WHERE b.model_no IN (?,?,?,?,?,?,?,?,?,?,?,?)
但我不知道为什么脚本只能返回六个结果。
0 likes, 0 dislikes
0 likes, 0 dislikes
0 likes, 0 dislikes
0 likes, 0 dislikes
0 likes, 0 dislikes
0 likes, 0 dislikes
我也在phpmyadmin中运行过查询,查询没有问题。 有没有大佬看看绑定过程有没有什么问题?
$dbh = new PDO("mysql:host=$hostname;dbname=$databasename", $username, $password);
$id_group = $_POST["group"];
$in = str_repeat('?,', count($id_group) - 1) . '?';
$sql = "SELECT a.id,a.likes,a.dislikes from `like_dislike` a
INNER JOIN `model_no` b ON a.id = b.id WHERE b.model_no IN ($in)";
$users = $dbh->prepare($sql);
$i = 1;
foreach ($id_group as $id) {
$users->bindValue($i++, $id);
}
$users->execute($id_group);
$rows = $users->fetchAll();
foreach($rows as $row)
{
echo "<div id='tid_".$row['id'].">".$row['likes']." likes, ".$row['dislikes']." dislikes</div>";
}
【问题讨论】:
-
您在 HTML 中的输入/选择元素是否包含名称属性为
name="group[]"? -
我使用 jQuery
load方法,所以应该没问题。并且控制台显示已经传递了12个值 -
@Log1cツ "Fell" for your test without the picture... 只是喜欢你的名字.... 也为这个问题 +1
-
@RedGiant,我不是在询问 jQuery 和所有内容,因为在您的代码中我可以看到您正在读取 POST 方法中的参数,因此,如果您也发布该 HTML 会更有帮助.
-
@user1986811,谢谢! :)