Yapay zekaya şöyle bir soru ilettim;
class VT{ var $host="localhost"; var $user="root"; var $password=""; var $dbname="chayonetim"; var $connect; function __construct() { try{ $this->connect=new PDO("mysql:host=".$this->host.";dbname=".$this->dbname.";charset=utf8",$this->user,$this->password); }    catch(PDOException $error) {    echo $error->getMessage();        exit(); }    } public function PullData($table,$wherepalace="",$wherearraycount="",$orderby="ORDER BY ID ASC",$limit="")        {            $this->connect->query("SET CHARACTER SET utf8");            $sql="SELECT * FROM".$table;            if(!empty($wherepalace) && !empty($wherearraycount))            {                $sql.=" ".$wherepalace;                if(!empty($orderby)) {$sql.=" ",$orderby;}                if(!empty($limit)) {$sql.=" LIMIT ",$limit;}                $run=$this->connect->prepare($sql);                $end=$run->execute($wherearraycount);                $datav=$run->fetchAll(PDO::FETCH_ASSOC);            }            else            {                if(!empty($orderby)) {$sql.=" ",$orderby;}                if(!empty($limit)) {$sql.=" LIMIT ",$limit;}                $datav=$this->connect->query($sql,PDO::FETCH:ASSOC);            }                if($veri!=false && !empty($veri))            {                $datavs=array();                foreach($datav as $information)                {                    $datavs[]=$information;                }                return $datavs            }            else            {            return false;            }        }     } ?>
[B]Bu kodun hatası ne? [/B]





cevap:

Alıntı
Bu PHP sınıfının hatalı olabilecek birkaç satırı var:
  1. SELECT sorgusunda tablo adının önünde "FROM" kelimesi olmadığı için hata verir. Doğru sorgu şu şekilde olmalıdır: "SELECT * FROM $table".
  2. "PDO::FETCH:ASSOC" ifadesi yanlış yazılmıştır. Doğru yazımı "PDO::FETCH_ASSOC" olmalıdır.
  3. "LIMIT" komutunun önünde ve sonrasında boşluk olmadığı için hata verir. Doğru hali "LIMIT $limit" olmalıdır.
  4. "foreach" döngüsünün içinde "$datav" değişkeni kullanılırken, döngü dışında "$veri" değişkeni kullanılmıştır. Bu nedenle "if ($veri!=false && !empty($veri))" koşulu aslında hiçbir zaman çalışmayacaktır. Doğru hali "if ($datav!=false && !empty($datav))" olmalıdır.
  5. "return $datavs" satırının sonunda nokta-virgül kullanılmamıştır. Doğru hali "return $datavs;" olmalıdır.