私はこれをどこでも探していましたが、解決策が見つかりません:mySQL列からすべての値を取得して配列に格納するにはどうすればよいですか?
例:テーブル名:顧客列名:ID、名前行数:5
この表の5つの名前すべての配列を取得したい。それをどうやってやるの?私はPHPを使用しています。
SELECT names FROM Customers
そして、使用します
mysql_fetch_array
これらの値を配列に保存するPHP関数。
この回答は時代遅れであることに注意してください!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.
[〜#〜] 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
)
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」メソッドを使用して配列を印刷し、すべてが機能することを確認します。これがお役に立てば幸いです。
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の初心者がこの機能を使用している場合は、この機能を使用してください。
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";
}
}
すべてのセットは、引数をFor Example
として渡します
$ queryStatment = "SELECT * From USERS"; $ testing = displayAllRecords( 'localhost'、 'root'、 'root @ 123'、 'email'、$ queryStatment); echo $ testing;
ここに
localhost
はHost
の名前を示し、
root
は、database
のユーザー名を示します
root@123
はpassword for the database
を示します
$queryStatment
for generating Query
それが役に立てば幸い
MySQL関数をPHP 7 に戻す方法
ステップ1
最初に、3月に削除されたmysql拡張ソースを取得します。
https://github.com/php/php-src/tree/PRE_PHP7_EREG_MYSQL_REMOVALS/ext/mysql
ステップ2
次に、php.iniを編集します
「Extensions」セクションまたは「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拡張機能を使用する必要があります。
MYSQLIの代替案を簡単に使用できます
*
<?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);
?>