php - php根据Id查询表中的所有行

标签 php mysql arrays

我的数据库中有一个包含 53 行的表。行中的变量是 INT id、VARCHAR var 和 INT votes。我不知道如何将表中的所有行查询到数组中。我希望能够在引用 id 时获取“var”变量。这是我到目前为止所拥有的,它确实只会查询第一行。 (因此 id = '1')。

<?php

include_once "code.php";
$new_array = array();
$sql = mysql_query("SELECT * FROM Variables WHERE id='1'");
while ($row = mysql_fetch_array($sql)) {
    $new_array[$row['id']] = $row;
};

我尝试使用 for 循环并将变量粘贴在“1”所在的位置,但这也不起作用。如果可以的话,请告诉我如何通过引用任何很棒的 id 来获取 var 变量。谢谢

最佳答案

为每一行声明$new_array。您应该将其移到 while 循环之外。另外,尽量不要使用 mysql_* 函数,因为它们已被弃用。尝试 mysqli_* 甚至更好的 PDO。

include_once "code.php";
$sql = mysql_query("SELECT * FROM Variables");
$new_array = array(); //This array should be not inside while
while($row = mysql_fetch_array($sql)){
    $new_array[$row['id']] = $row;
    //Do something else here if you want
};

使用 PDO

try {
    $link= new PDO("mysql:host=$hostname;dbname=mysql", $username, $password);
    echo "PDO connection object created";
}
catch(PDOException $e) {
    echo $e->getMessage();
    die();
}

$sql = "SELECT * FROM users";
//Prepare your query
$stmt = $link->prepare($sql);
//Execute your query binding variables
$result = $stmt->execute(array());
$result = $stmt->fetchAll();
$new_array = array();
foreach ($result as $row) {
    $new_array[$row['id']] = $row;
}

评论后编辑:

从查询中删除 WHERE id = '1',您将获得所有行。然后你可以使用 id 引用的 var:

echo $new_array[1]['var'];
echo $new_array[2]['var'];

关于php - php根据Id查询表中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373086/

相关文章:

php - 从字符串中删除最后两个单词

php - 插入多个表单选择到Mysql

php - Laravel eloquent where 方法给出不区分大小写

java - 如何使用 Java 流将两个数组合并到一个映射中?

javascript - 根据id合并两个数组

php - 注册后使用 Controller 或路由发送电子邮件

PHP:将一串交替的字符组拆分为一个数组

javascript - YouTube:点击按钮即可播放YouTube视频

mysql - PostgreSQL 中的 Base58 编码器函数

c++添加操作菜单