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.
 
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]
 
Acil değilse BURADAN bana ulaşabilirsin iletişim bilgilerim var. WhatsApp Instagram farketmez yaz müsait bir zamanda yardımcı olayım. Olur mu?
Daha sonra buraya tam olarak cevabı iliştiririm konuyu öyle kapatırız.
 
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:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…