Call to undefined function mysqli_fetch_all() hatası

araştırmacı56

Zeptopat
Katılım
24 Şubat 2022
Mesajlar
4
Daha fazla  
Cinsiyet
Erkek
Herkese merhabalar,
Mysql den rastgele veri çekmeye çalışıyorum. Çekilen verilen -textarea- içersine rastgele olarak geliyor. Xampp üzerinden bir sorun olmadı fakat doman üzerinde çalıştırınca Call to undefined function mysqli_fetch_all() hatası veriyor. Araştırdım fakat hep ingilizce kaynaklar vardı çözüm bulamadım. Yardımcı olabilir misiniz? Php sürümü 7.4... Kodlar;
[CODE title="php kodları" highlight="30"]<?php
// Initialize session
session_start();
require "function/routing.php";
if($_SERVER["REQUEST_METHOD"]=="POST"){
$servername = "localhost";
$username = "root";
$password = "";
$database = "deneme";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
if ($conn) {
$sql = "SELECT * FROM kontrol";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_all($result);
$randomn = $row[rand(0,3)];
$randomn1 = $randomn[1];
//echo ($randomn1);

}else{
echo '';
go("",2);
exit("yetkisiz yönlendiriliyor.");
}[/CODE]

[CODE title="Html kodları" highlight="30"]<form id='form'>
<textarea type="password" id="password"><?php echo ($randomn1)?></textarea>
</form>[/CODE]
 
xampp'ta mysqli modülü varsayılan olarak geliyor bunu denemeye çalıştığınız sunucuda php.ini'den mysqli açık mı kontrol edin.
Evet onu kontrol ettim
Büyük ihtimalle kullandığın PHP sürümü ile kodların uyuşmuyor, PDO çalışırsanız düzelebilir.
[CODE title="PDO" highlight="30"]<?php

$conn = new PDO("mysql:host=localhost;dbname=deneme;charset=utf8", "root", "");
//databasaeye baglantı


$sql = $conn->query("SELECT * FROM `kontrol` ORDER BY rand() LIMIT 1");
while($password = $sql->fetch(PDO::FETCH_ASSOC))
{
echo $password['password'];
}
[/CODE]
Şu şekilde yapınca çalıştı fakat bu seferde textarea içersinde yazdıramadım.

[CODE title="HTML" highlight="5"]<form id='form'>
<textarea type="password" id="password"><?php echo ($randomn1)?></textarea>
</form>[/CODE]

<?php echo ($randomn1)?> şu hale nasıl getirebilirim?
 
Son düzenleme:
[CODE lang="php" title="PHP"]<?= $randomn1 ?>[/CODE]
Bu şekilde dener misin?
:( Maalesef olmadı. Aslında PDO şekline dönünce şu halde yazamadım. Bu konuda yardımcı olabilir misiniz?
[CODE title="PHP"]$sql = "SELECT * FROM kontrol";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_all($result);
$randomn = $row[rand(0,3)];
$randomn1 = $randomn[1];
//echo ($randomn1); [/CODE]
 
Sorunun çözümü şu şekildedir. Mysql_ mysqli_ PHP >7'den sonraki sürümlerde desteklenmemekteymiş. Ayrıca güvenlik açıları nedeni ile kullanımı Hosting sağlayıcıları tarafından pek tutulmamakta. Bu yüzden PDO ile şu şekilde düzenledi

[CODE title="Database bağlantı" highlight="php"]<?php
try {
$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8","root","");
} catch(PDOException $hata) {
echo "Database connection failed:" . $hata->getMessage();
}
?>[/CODE]

Veri çekme işlemi ise (Bu kodlar ile databaseden rastgele veri çeker)

[CODE title="PHP"] $cek = $db->query("SELECT * FROM `check` ORDER BY rand() LIMIT 1");
$cek->execute();
while($row = $cek->fetch(PDO::FETCH_ASSOC)){

echo echo $row['tablodan okunmak istenen veri ismi'];

}
[/CODE]

Eğer ki databaseden çekilen bu veriyi bir textarea veya input içerisine yazdırmak isterseniz

[CODE title="PHP"] <body>

<?php
$cek = $db->query("SELECT * FROM `check` ORDER BY rand() LIMIT 1");
$cek->execute();
while($row = $cek->fetch(PDO::FETCH_ASSOC)){
?>

<input readOnly value=<?php echo $row['tablodan okunmak istenen veri ismi'];?> type="password" id="password"/>
<?php } ?>
</body> [/CODE]

Şeklinde yapabilirsiniz. Cevaplar için teşekkürler.
 
Son düzenleme:

Technopat Haberler

Geri
Yukarı