我一直在寻找这个,但仍然无法找到解决方案:如何从mySQL列中获取所有值并将它们存储在数组中?
例如: 表名:客户 列名:ID,名称 行数:5
我想得到这个表中所有5个名字的数组。我该怎么做呢?我正在使用PHP,我试图只是:
SELECT names FROM Customers
然后使用
mysql_fetch_array
用于将这些值存储在数组中的PHP函数。
答案 0 :(得分:28)
请注意,这个答案已经过时了!从PHP7开始,mysql扩展已不再可用。如果你想在PHP7中使用旧的mysql函数,you will have to compile ext/mysql from PECL.请参阅其他答案以获得更多当前解决方案。
这可行,请点击此处查看更多文档: http://php.net/manual/en/function.mysql-fetch-array.php
$result = mysql_query("SELECT names FROM Customers");
$storeArray = Array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$storeArray[] = $row['names'];
}
// now $storeArray will have all the names.
答案 1 :(得分:28)
$stmt = $pdo->prepare("SELECT Column FROM foo");
// careful, without a LIMIT this can take long if your table is huge
$stmt->execute();
$array = $stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($array);
或者,使用mysqli
$stmt = $mysqli->prepare("SELECT Column FROM foo");
$stmt->execute();
$array = [];
foreach ($stmt->get_result() as $row)
{
$array[] = $row['column'];
}
print_r($array);
Array
(
[0] => 7960
[1] => 7972
[2] => 8028
[3] => 8082
[4] => 8233
)
答案 2 :(得分:4)
我会使用mysqli连接来连接数据库。这是一个例子:
$connection = new mysqli("127.0.0.1", "username", "password", "database_name", 3306);
下一步是选择信息。在你的情况下,我会这样做:
$query = $connection->query("SELECT `names` FROM `Customers`;");
最后,我们通过输入以下命令从所有这些名称中创建一个数组:
$array = Array();
while($result = $query->fetch_assoc()){
$array[] = $result['names'];
}
print_r($array);
所以我在这段代码中做了些什么: 我使用mysql查询从表中选择了所有名称。接下来,我使用while循环来检查$ query是否具有下一个值。如果是这样,while循环继续并将该值添加到数组'$ array'。否则循环停止。最后我使用'print_r'方法打印数组,这样你就可以看到它一切正常。我希望这很有帮助。
答案 3 :(得分:1)
由于不推荐使用 mysql _ * ,所以这是使用 mysqli 的解决方案。
$mysqli = new mysqli('host', 'username', 'password', 'database');
if($mysqli->connect_errno>0)
{
die("Connection to MySQL-server failed!");
}
$resultArr = array();//to store results
//to execute query
$executingFetchQuery = $mysqli->query("SELECT `name` FROM customers WHERE 1");
if($executingFetchQuery)
{
while($arr = $executingFetchQuery->fetch_assoc())
{
$resultArr[] = $arr['name'];//storing values into an array
}
}
print_r($resultArr);//print the rows returned by query, containing specified columns
使用 PDO
还有另一种方法可以做到这一点 $db = new PDO('mysql:host=host_name;dbname=db_name', 'username', 'password'); //to establish a connection
//to fetch records
$fetchD = $db->prepare("SELECT `name` FROM customers WHERE 1");
$fetchD->execute();//executing the query
$resultArr = array();//to store results
while($row = $fetchD->fetch())
{
$resultArr[] = $row['name'];
}
print_r($resultArr);
答案 4 :(得分:0)
How to put MySQL functions back into PHP 7
第1步
首先获取3月删除的mysql扩展源:
https://github.com/php/php-src/tree/PRE_PHP7_EREG_MYSQL_REMOVALS/ext/mysql
第2步
然后编辑你的php.ini
在“扩展”部分或“MySQL”部分的某处,只需添加以下行:
extension = /usr/local/lib/php/extensions/no-debug-non-zts-20141001/mysql.so
第3步
重启PHP和mysql_ *函数现在应该再次运行。
第4步
关闭所有已弃用的警告,包括mysql _ *:
error_reporting(E_ALL ^ E_DEPRECATED);
现在代码下方帮助您:
$result = mysql_query("SELECT names FROM Customers");
$Data= Array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$Data[] = $row['names'];
}
您还可以使用mysql_fetch_assoc
$result = mysql_query("SELECT names FROM Customers");
$Data= Array();
while ($row = mysql_fetch_assoc($result))
{
$Data[] = $row['names'];
}
此扩展在PHP 5.5.0中已弃用,并已在PHP 7.0.0中删除。相反,应该使用MySQLi或PDO_MySQL扩展。
您可以使用MYSQL的MYSQL替代方式
*
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";
$result=mysqli_query($con,$sql);
// Numeric array
$row=mysqli_fetch_array($result,MYSQLI_NUM);
printf ("%s (%s)\n",$row[0],$row[1]);
// Associative array
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
printf ("%s (%s)\n",$row["Lastname"],$row["Age"]);
// Free result set
mysqli_free_result($result);
mysqli_close($con);
?>
答案 5 :(得分:0)
第一件事是,这仅适用于高级开发人员,如果您正在核心php中使用大型项目,那么现在都是php新手就不要使用此功能
var urlLineChartRegion = '@Url.Action("LineChartRegion")';
$('.line-chart-region-statss').load(urlLineChartRegion, "",
function (responseText, textStatus, XMLHttpRequest) {
if (textStatus == 'success') {
$('.loading-sec-line-chart-region-stats').hide();
}
});
所有已设置的参数作为function displayAllRecords($serverName, $userName, $password, $databaseName,$sqlQuery='')
{
$databaseConnectionQuery = mysqli_connect($serverName, $userName, $password, $databaseName);
if($databaseConnectionQuery === false)
{
die("ERROR: Could not connect. " . mysqli_connect_error());
return false;
}
$resultQuery = mysqli_query($databaseConnectionQuery,$sqlQuery);
$fetchFields = mysqli_fetch_fields($resultQuery);
$fetchValues = mysqli_fetch_fields($resultQuery);
if (mysqli_num_rows($resultQuery) > 0)
{
echo "<table class='table'>";
echo "<tr>";
foreach ($fetchFields as $fetchedField)
{
echo "<td>";
echo "<b>" . $fetchedField->name . "<b></a>";
echo "</td>";
}
echo "</tr>";
while($totalRows = mysqli_fetch_array($resultQuery))
{
echo "<tr>";
for($eachRecord = 0; $eachRecord < count($fetchValues);$eachRecord++)
{
echo "<td>";
echo $totalRows[$eachRecord];
echo "</td>";
}
echo "<td><a href=''><button>Edit</button></a></td>";
echo "<td><a href=''><button>Delete</button></a></td>";
echo "</tr>";
}
echo "</table>";
}
else
{
echo "No Records Found in";
}
}
$ queryStatment =“选择*来自用户”; $ testing = displayAllRecords('localhost','root','root @ 123','email',$ queryStatment); echo $ testing;
这里
Example
表示localhost
的名称,
host
表示root
的用户名
database
表示root@123
password for the database
for $queryStatment
希望有帮助
答案 6 :(得分:0)
PHP 5> = 5.5.0,PHP 7
在结果数组上使用array_column
$column = array_column($result, 'names');