将MySQL结果存储在单独的PHP变量中

将MySQL结果存储在单独的PHP变量中,php,html,mysql,Php,Html,Mysql,我有一个MySQL查询,每次运行时都会返回3个随机行。我想将每一行存储在一个数组中,每一行的每一列都是数组的不同部分。希望我说的很清楚。这就是我目前所处的位置 $result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3"); $row = mysql_fetch_array($result); 问题是它将所有内容都存储在$result中,我不知道一旦它存在,如何引用不同的列。我

我有一个MySQL查询,每次运行时都会返回3个随机行。我想将每一行存储在一个数组中,每一行的每一列都是数组的不同部分。希望我说的很清楚。这就是我目前所处的位置

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
$row = mysql_fetch_array($result);
问题是它将所有内容都存储在$result中,我不知道一旦它存在,如何引用不同的列。我这样做是为了最终将我想要的指定随机条目打印到9个不同的div中。

试试:

$array = Array();

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
while ($row = mysql_fetch_array($result)) {
    $array[] = $row;
}
尝试:


您可以使用
$row['COLUMNAME']
获取列值。
请注意,COLUMNAME将区分大小写

例如:

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
while($row = mysql_fetch_array($result)) {
    echo 'Name: ' . $row['NAME'] . '<br/>';
    echo 'Author: ' . $row['AUTHOR'] . '<br/>';
}
$result=mysql_query(“根据兰德()限制3从推荐顺序中选择姓名、作者、城市”);
while($row=mysql\u fetch\u数组($result)){
回显“名称:”.$row[“名称”]。
; 回显“Author:”.$row['Author'].
; }
另外,请阅读下面的红色大告示:
不鼓励使用此扩展。

相反,应该使用or扩展名。有关更多信息,请参见MySQL:选择API指南和相关常见问题解答。

您可以使用
$row['COLUMNAME']
获取列值。
请注意,COLUMNAME将区分大小写

例如:

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
while($row = mysql_fetch_array($result)) {
    echo 'Name: ' . $row['NAME'] . '<br/>';
    echo 'Author: ' . $row['AUTHOR'] . '<br/>';
}
$result=mysql_query(“根据兰德()限制3从推荐顺序中选择姓名、作者、城市”);
while($row=mysql\u fetch\u数组($result)){
回显“名称:”.$row[“名称”]。
; 回显“Author:”.$row['Author'].
; }
另外,请阅读下面的红色大告示:
不鼓励使用此扩展。

相反,应该使用or扩展名。另请参见MySQL:选择API指南和相关FAQ以了解更多信息。

考虑使用准备好的语句,因为MySQL已被弃用。如果您粗心或缺乏经验,并且没有正确地转义查询字符串,那么它也容易受到SQL注入的影响

以下是使用mysqli_389;的解决方案:

$link = mysqli_connect("localhost", "user", "password", "database") or die(mysqli_error($link));
$stmt = mysqli_stmt_init($link);
$query = 'SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3';
$arrTestimonials = array();   

if (mysqli_stmt_prepare($stmt, $query)) {
    mysqli_stmt_bind_result($stmt, $out_name, $out_author, $out_city);
    mysqli_stmt_execute($stmt);

    while (mysqli_stmt_fetch($stmt)) {
        $arrTestimonials[]['name'] = $out_name;
        $arrTestimonials[]['author'] = $out_author;
        $arrTestimonials[]['city'] = $out_city;
    }
} // error preparing statement 
阵列的结构如下所示:

Array
(
    [0] => Array
        (
            [name] => Name 1
            [author] => Author 1
            [city] => City 1
        )

    [1] => Array
        (
            [name] => Name 2
            [author] => Author 2
            [city] => City 2
        )

    [2] => Array
        (
            [name] => Name 3
            [author] => Author 3
            [city] => City 3
        )

)   

考虑使用准备好的语句,因为mysql_uu已被弃用。如果您粗心或缺乏经验,并且没有正确地转义查询字符串,那么它也容易受到SQL注入的影响

以下是使用mysqli_389;的解决方案:

$link = mysqli_connect("localhost", "user", "password", "database") or die(mysqli_error($link));
$stmt = mysqli_stmt_init($link);
$query = 'SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3';
$arrTestimonials = array();   

if (mysqli_stmt_prepare($stmt, $query)) {
    mysqli_stmt_bind_result($stmt, $out_name, $out_author, $out_city);
    mysqli_stmt_execute($stmt);

    while (mysqli_stmt_fetch($stmt)) {
        $arrTestimonials[]['name'] = $out_name;
        $arrTestimonials[]['author'] = $out_author;
        $arrTestimonials[]['city'] = $out_city;
    }
} // error preparing statement 
阵列的结构如下所示:

Array
(
    [0] => Array
        (
            [name] => Name 1
            [author] => Author 1
            [city] => City 1
        )

    [1] => Array
        (
            [name] => Name 2
            [author] => Author 2
            [city] => City 2
        )

    [2] => Array
        (
            [name] => Name 3
            [author] => Author 3
            [city] => City 3
        )

)   

要扩展一点,您可以执行以下echo$array['AUTHOR'];例如,要扩展一点,您可以执行以下echo$array['AUTHOR'];例如,$result不是查询中的数据。它只是一个结果句柄。在执行fetch调用之前,不会获取实际数据。$result不是来自查询的数据。它只是一个结果句柄。在执行提取调用之前,您不会获得实际数据。