Makale Rehberi
MySQL veritabanındaki bir tablodan veri nasıl sorgulanır ? Sorgu ifadesi/komutu/sözdizimi
MySQL Verileri sorgula
MySQL veritabanları, verileri sorgulamak için SQL SELECT deyimlerini kullanır.
Veritabanındaki verileri mysql> komut istemi penceresi veya bir PHP betiği aracılığıyla sorgulayabilirsiniz.
dilbilgisi
MySQL veritabanındaki verileri sorgulamak için genel SELECT sözdizimi aşağıdadır:
SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
- Sorgu deyiminde bir veya daha fazla tablo kullanabilir, tabloları virgülle (,) ayırabilir ve sorgu koşullarını ayarlamak için WHERE deyimini kullanabilirsiniz.
- SELECT komutu bir veya daha fazla kaydı okuyabilir.
- Diğer alanları değiştirmek için yıldız işareti (*) kullanabilirsiniz, SELECT ifadesi tablonun tüm alan verilerini döndürür
- Herhangi bir koşulu eklemek için WHERE ifadesini kullanabilirsiniz.
- SELECT ifadesinin sorguyu OFFSET ile başlatacağı veri ofsetini belirtebilirsiniz.Varsayılan olarak ofset 0'dır.
- Döndürülen kayıt sayısını ayarlamak için LIMIT özelliğini kullanabilirsiniz.
Komut istemi aracılığıyla veri alın
Aşağıdaki örnekte, chenweiliang_tbl MySQL veri tablosunun verilerini elde etmek için SQL SELECT komutunu kullanacağız:
Örnek
Aşağıdaki örnek, chenweiliang_tbl veri tablosunun tüm kayıtlarını döndürür:
Veri sayfasını okuyun:
select * from chenweiliang_tbl;
Veri almak için PHP betiğini kullanın
Verileri almak için PHP fonksiyonu mysqli_query() ve SQL SELECT komutunu kullanın.
Bu fonksiyon SQL komutlarını çalıştırmak için kullanılır ve ardından PHP fonksiyonu mysqli_fetch_array() sorgulanan tüm verilere erişmek veya bunları çıktılamak için kullanılır.
`mysqli_fetch_array()` fonksiyonu, sonuç kümesinden bir satırı ilişkisel dizi, sayısal dizi veya her ikisi olarak alır ve sonuç kümesinden alınan satırdan oluşturulan bir dizi döndürür. Başka satır yoksa, `false` değerini döndürür.
Aşağıdaki örnek, chenweiliang_tbl veri tablosundaki tüm kayıtları okur.
Örnek
chenweiliang_tbl veri tablosunun tüm kayıtlarını görüntülemek için aşağıdaki örneği deneyin.
Veri almak için mysqli_fetch_array MYSQL_ASSOC parametresini kullanın:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Yukarıdaki örnekte, okunan her kayıt satırı $satır değişkenine atanır ve ardından her değer yazdırılır.
Not: Değişkeni bir metin içinde kullanmanız gerekiyorsa, onu mutlaka süslü parantezler içine almayı unutmayın.
Yukarıdaki örnekte, PHP mysqli_fetch_array() fonksiyonunun ikinci parametresi MYSQL_ASSOC'tur . Bu parametreyi ayarlamak, ilişkisel bir dizi döndürür ve alan adını dizinin indeksi olarak kullanabilirsiniz.
PHP, sonuç kümesinden bir satırı ilişkisel dizi olarak alan `mysqli_fetch_assoc()` adlı başka bir fonksiyon da sunar . Bu fonksiyon, sonuç kümesinden alınan satırlara dayalı bir ilişkisel dizi döndürür; daha fazla satır yoksa false döndürür.
Örnek
Aşağıdaki örnekte, chenweiliang_tbl tablosunun tüm kayıtlarını çıktılamak için mysqli_fetch_assoc() fonksiyonu kullanılmaktadır:
Veri almak için mysqli_fetch_assoc kullanın:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_assoc 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_assoc($retval))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Ayrıca, bir dizi sayı döndüren PHP mysqli_fetch_array() işlevinin ikinci parametresi olarak MYSQL_NUM sabitini de kullanabilirsiniz.
Örnek
Aşağıdaki örnek, chenweiliang_tbl tablosundaki tüm kayıtları görüntülemek için MYSQL_NUM parametresini kullanır:
Veri almak için mysqli_fetch_array MYSQL_NUM parametresini kullanın:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Yukarıdaki üç örneğin çıktı sonuçları aynıdır.
bellek sürümü
Bir SELECT ifadesi yürüttükten sonra imleç belleğini boşaltmak iyi bir uygulamadır.
Bellek, PHP işlevi mysqli_free_result() aracılığıyla serbest bırakılabilir.
Aşağıdaki örnek, bu işlevin kullanımını gösterir.
Örnek
Aşağıdaki örnekleri deneyin:
mysqli_free_result ile boş bellek:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>Umarım Chen Weiliang'ın blogunda ( https://www.chenweiliang.com/ ) paylaşılan "MySQL Veritabanındaki Bir Tablodan Veri Nasıl Sorgulanır? Sorgu Deyimleri/Komutları/Sözdizimi" başlıklı makale size yardımcı olur.
Bu makalenin bağlantısını paylaşmaktan çekinmeyin: https://www.chenweiliang.com/cwl-461.html
