PHP를 사용하여 열에 있는 모든 값을 얻는 방법은 무엇입니까?
이 문제를 여기저기서 찾아봤지만, 여전히 해결책을 찾을 수 없습니다.mySQL 열에서 모든 값을 가져와 배열에 저장하려면 어떻게 해야 합니까?
예: 테이블 이름:고객 열 이름: ID, 행 이름 번호: 5
저는 이 표에 있는 5개의 이름을 모두 배열하고 싶습니다.어떻게 해야 하죠?저는 PHP를 사용하고 있고, 저는 단지 다음과 같이 하려고 했습니다.
SELECT names FROM Customers
그 다음에 사용합니다.
mysql_fetch_array
PHP 기능은 이러한 값을 배열에 저장합니다.
PDO 또는 mysqli를 사용하여 이를 수행하는 간단한 방법이 있습니다.
$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
)
이 대답은 구식이라는 것을 참고하세요!mysql 확장자는 PHP7 현재 더 이상 즉시 사용할 수 없습니다.PHP7에서 이전의 mysql 함수를 사용하려면 PECL에서 ext/mysql을 컴파일해야 합니다.최신 솔루션에 대한 자세한 내용은 다른 답변을 참조하십시오.
이것은 효과가 있을 것입니다. 자세한 문서는 여기 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.
저는 데이터베이스에 연결하기 위해 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 쿼리를 사용하여 테이블에서 모든 이름을 선택했습니다.다음으로 $query에 다음 값이 있는지 확인하기 위해 while loop을 사용합니다.그렇다면 while 루프가 계속되고 해당 값을 배열 '$array'에 추가합니다.그렇지 않으면 루프가 멈춥니다.그리고 마지막으로 'print_r' 방법으로 배열을 인쇄하여 모든 것을 확인할 수 있습니다.도움이 됐기를 바랍니다.
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);
PHP 5 >= 5.5.0, PHP 7
결과 배열에 array_column 사용
$column = array_column($result, 'names');
먼저 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 Easy way의 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);
?>
첫번째로 이것은 고급 개발자들만을 위한 것입니다. 모두들 pp를 초보적으로 사용하는 사람들은 이 기능을 사용하지 않습니다. 만약 당신이 코어 pp에서 거대한 프로젝트를 사용하고 있다면 이 기능을 사용합니다.
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";
}
}
All set now 인수를 For로 전달합니다.Example
$queryStatement = "SELECT * From USers"; $testing = displayAllRecords('localhost', 'root', 'root@123', 'email', $queryStatement); echo $testing;
여기서
localhost
이름을 나타냅니다.host
,
root
에 대한 사용자 이름을 나타냅니다.database
root@123
표시합니다.password for the database
$queryStatment
위해서generating Query
도움이 되기를 바랍니다
언급URL : https://stackoverflow.com/questions/5229501/how-get-all-values-in-a-column-using-php
'programing' 카테고리의 다른 글
MySQL에서 필드 또는 열에 별칭을 붙이는 방법은 무엇입니까? (0) | 2023.10.07 |
---|---|
bootstrap.yml이 Spring Boot 2에 로드되지 않음 (0) | 2023.10.07 |
안드로이드 X란? (0) | 2023.10.07 |
다중 입력이 있는 사용자 지정 중력 양식 필드 (0) | 2023.10.07 |
jQuery를 사용하여 페이지를 한 번 새로 고침(재로드)하시겠습니까? (0) | 2023.10.07 |