PHP记录到数组:数组查询返回的所有ID

问题描述:

我有这个疑问:PHP记录到数组:数组查询返回的所有ID

"SELECT gs.id FROM table1 gs WHERE gs.external_id = " . $external_id . " "; 

我想有一个PHP阵列的所有返回的ID是这样的:

$arr_ids = array(1,2,34,14); 

我知道我可以使用,而做到这一点,但我想知道是否有一个功能 或者这样做更优雅的方式:

$result = array(); 
while ($row = mysql_fetch_array($rs)) 
{ 
    $result[] = $row['id']; 
} 
unset($rs); 
unset($row); 

谢谢

+3

更优雅的方式?这对我来说似乎没有问题 – Ghost 2014-09-11 08:53:42

+1

不是真的,那是关于它的。 – Rasclatt 2014-09-11 08:54:09

+2

仍在使用mysql_ *扩展名? – sectus 2014-09-11 08:54:16

有一种更优雅的方式。您应该使用mysqli函数(而不是mysql)。 See this question and answer for more information about this topic.

您可以使用mysqli_result::fetch_all()而不使用循环。以下是一个如何使用它的例子。

// Connect to database 
$sqlConn = new mysqli($hostname, $username, $password, $database); 

// Build SQL String 
$sqlString = "SELECT * FROM my_table"; 

// Execute the query and put data into a result 
$result = $this->sqlConn->query($sqlString); 

// Copy result into a associative array 
$resultArray = $result->fetch_all(MYSQLI_ASSOC); 

// Copy result into a numeric array 
$resultArray = $result->fetch_all(MYSQLI_NUM); 

// Copy result into both a associative and numeric array 
$resultArray = $result->fetch_all(MYSQLI_BOTH); 
+0

'当使用mysqli时,您可以使用PDOStatement :: fetchAll()而不使用循环。“请考虑在所有这些建议之后校对该语句 – 2014-09-11 09:07:28

+0

,确定我会查看该问题和答案,然后我将转到此方法。谢谢 – SaganTheBest 2014-09-11 09:08:29

+0

@Hanky웃Panky谢谢你的建议。我经常使用同义词,as - iirc - 'mysqli'是PDO的MySQL实现。 – 2014-09-11 10:10:39