这是我的数组:
array (size=2)
100 =>
array (size=2)
'trade' => int 5
'gold' => int 10
101 =>
array (size=2)
'trade' => int 10
'gold' => int 20
Array的关键是我想在查询中运行的用户的ID。我想我可能需要使用IN,例如:
SELECT * FROM `users` WHERE `id` IN (:id)
(:id在脚本中被$ id替换)
现在我做的时候
SELECT * FROM `users` WHERE `id` IN (100,105)
(用于测试目的)它有效。
虽然我需要做好准备,所以当我设置
时$id = 100,101;
或
$id = ‘100,101’;
它只显示100条记录。
有什么想法吗? 感谢
答案 0 :(得分:0)
您可以使用implode和array_keys:
"SELECT * FROM `users` WHERE `id` IN (" . implode(",", array_keys($array)) . ")"
您可以通过手动使用/指定数组来测试:
$array = array(
100 => array(
'trade' => 5,
'gold' => 10,
),
101 => array(
'trade' => 10,
'gold' => 20,
)
);
$sql = "SELECT * FROM `users` WHERE `id` IN (" . implode(",", array_keys($array)) . ")";
$result = mysqli_query($sql);
while($row = mysqli_fetch_assoc($result)){
var_dump($row);
}
它已经过实际测试并且有效。
答案 1 :(得分:0)
你做错了$id = 100,101;
和$id = ‘100,101’;
试试这个
$id = "100,101";
或者
$id = '100,101';
甚至可以这样做
$id = 100;
$id .= ",";
$id .= 101 ;