Php 从数组或逗号分隔字符串:在一个查询中从数据库获取字段

Php 从数组或逗号分隔字符串:在一个查询中从数据库获取字段,php,mysql,Php,Mysql,我有多个数值,可以表示为数组或逗号分隔的字符串。对于这些值中的每一个,我都要选择相应的数据库行。是否可以在一个查询中执行此操作 // data examples $array = array(3, 6, 200); // or more values $string = '3,6,200' ; // or more values 我可以对每个值执行以下查询,以从表中获取字段: SELECT email FROM table WHERE id='$array_value'; 但是如何在一个查询

我有多个数值,可以表示为数组或逗号分隔的字符串。对于这些值中的每一个,我都要选择相应的数据库行。是否可以在一个查询中执行此操作

// data examples
$array = array(3, 6, 200); // or more values
$string = '3,6,200' ; // or more values
我可以对每个值执行以下查询,以从表中获取字段:

SELECT email FROM table WHERE id='$array_value';

但是如何在一个查询中获得此信息?

尝试在中使用

// data examples
$array = array(3, 6, 200); // or more values
$string = '3,6,200' ; // or more values
$query = 'SELECT email FROM table WHERE id IN (' . ( is_array( $ids ) ? implode( ',', $ids ) : $ids ) . ')';

假设
$ids
是作为字符串或数组的ID列表。

尝试在
中使用

$query = 'SELECT email FROM table WHERE id IN (' . ( is_array( $ids ) ? implode( ',', $ids ) : $ids ) . ')';
// $vals is your "array or comma-separated string"
if( is_array($vals)) $vals = implode(",",$vals);
mysql_query( "SELECT `id`, `email` FROM `table` WHERE `id` IN (".$vals.")");
假设
$ids
是作为字符串或数组的ID列表

// $vals is your "array or comma-separated string"
if( is_array($vals)) $vals = implode(",",$vals);
mysql_query( "SELECT `id`, `email` FROM `table` WHERE `id` IN (".$vals.")");
我还选择了
id
,这样在循环查看结果时,您就可以识别出哪个电子邮件属于哪个id。如果这不重要,你可以放弃它


我还选择了
id
,这样在循环查看结果时,您就可以识别出哪个电子邮件属于哪个id。如果这不重要,您可以将其删除。

您应该在
操作符中使用
。如果
$data
是数组或逗号分隔的数字列表(字符串),请执行以下操作:

仅当您确定数组中的元素是安全的时才执行此操作

如果您必须确保数据安全,您可以这样做

$in = is_array($data) ? 
        "'" . implode("','", array_map('mysql_real_escape_string', $data)) . "'" : 
        "'" . mysql_real_escape_string($data) . "'";
或者,如果您需要整数值,只需使用:

$in = is_array($data) ? 
        implode(',', array_map('intval', $data)) : 
        (int)$data;

您应该在
操作符中使用
。如果
$data
是数组或逗号分隔的数字列表(字符串),请执行以下操作:

仅当您确定数组中的元素是安全的时才执行此操作

如果您必须确保数据安全,您可以这样做

$in = is_array($data) ? 
        "'" . implode("','", array_map('mysql_real_escape_string', $data)) . "'" : 
        "'" . mysql_real_escape_string($data) . "'";
或者,如果您需要整数值,只需使用:

$in = is_array($data) ? 
        implode(',', array_map('intval', $data)) : 
        (int)$data;

值是复选框id属性这是安全的吗?如果没有,我怎么做?不,这肯定不安全,将在一秒钟内更新答案。在分配
$in
后,使用
数组_walk($in,'intval')值是复选框id属性这是安全的吗?如果没有,我怎么做?不,这肯定不安全,将在一秒钟内更新答案。在分配
$in
后,使用
数组_walk($in,'intval')