Mysql 1364 Field doesn’t have a default value hatası çözümü

Phpmyadmin güncellemesi ile birlikte bu hatayı alanlar uyarıda geçen tabloya tıkladıktan sonra Yapı menüsünden ilgili sütunu seçerek Yapı linkine tıklayın.

Varsayılan değeri yok olan AutoIncrement(id) hariç olan sütunları değiştir seçeneğine tıklayın

Varsayılan değer olarak NULL veya tanımlı bir değer girerek kaydedin.

MyDB ile Mysqli Veritabanı Sorgu ve Hata İzleme

PHP
44 lines
<?php
class myDB{
var $link;
function __construct(){
$dbserver = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "php";
$this->link = mysqli_connect($dbserver,$dbuser,$dbpass,$dbname);
}
function sqli(){
$sorgu = func_get_arg(0);
if (!$veri = mysqli_query($this->link,$sorgu)){
if(func_num_args()>1){
$aranan = basename(func_get_arg(1));
}else{
$aranan = "<i>bilinmeyen</i>";
}
if(func_num_args()>2){
$satir = func_get_arg(2);
}else{
$satir = "<i>bilinmeyen</i>";
}
trigger_error("<p style=\"color:#ff0000;\"><b>MYDB-HATA:<br />Sorgu</b> ".$sorgu." <b> hata döndürdü.</b><br />".mysqli_error($this->link)." <br /> ".$aranan." <b>dosyasında satır</b> ".$satir." </p>", E_USER_WARNING);
}
$dizi = explode(" ",$sorgu);
$dizi[0] = strtoupper($dizi[0]);
if ($dizi[0]=="SELECT"){
$say = mysqli_num_rows($veri);
}else{
$say = mysql_affected_rows();
}
return array($veri, $say);
}
function __destruct(){
mysqli_close($this->link);
}
}
$my = new myDB;
list($veri, $say) = $my->sqli("SELECT id,sayfa FROM php limit 2",__FILE__,__LINE__);
foreach($veri as $a){
print_r($a);
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

PHP
10 lines
Array
(
[id] => 1
[sayfa] => 7
)
Array
(
[id] => 2
[sayfa] => 3
)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Hata testi

PHP
5 lines
$my = new myDB;
list($veri, $say) = $my->sqli("WHERE SELECT FROM php",__FILE__,__LINE__);
foreach($veri as $a){
print_r($a);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Hata Çıktısı

Markdown
9 lines
Warning:
MYDB-HATA:
Sorgu WHERE SELECT FROM php hata döndürdü.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE SELECT FROM php' at line 1
index.php dosyasında satır 40
in C:\www\index.php on line 24
Warning: Invalid argument supplied for foreach() in C:\www\index.php on line 41
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Warning: get_class() called without object from outside a class in Hatası Çözüm

Hata Örneği

PHP
9 lines
<?php
class sinif{
public static function OrnekAl(){
return null;
}
}
class test extends sinif{}
echo get_class(test::OrnekAl());
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

get_class ile bir sınıf ismi döndürmek istedik. Fakat dönen test::OrnekAl() sonucu bir fonksiyon içindeki null‘dü. Düzeltmek için aşağıdaki yöntemler kullanılabilir.

1.Ana ismi almak için fonksiyon sonucunu static sınıfa çevirmek

PHP
9 lines
<?php
class sinif{
public static function OrnekAl(){
return new static;
}
}
class test extends sinif{}
echo get_class(test::OrnekAl());
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2.Ana ismi almak için fonksiyon ismini kaldırmak

PHP
9 lines
<?php
class sinif{
public static function OrnekAl(){
return null;
}
}
class test extends sinif{}
echo get_class(new test);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

3.Alt ismi almak için sınıfı döndürmek

Markdown
9 lines
<?php
class sinif{
public static function OrnekAl(){
return new sinif;
}
}
class test extends sinif{}
echo get_class(test::OrnekAl());
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

4.Alt ismi almak için direk sınıfı çağırmak

PHP
9 lines
<?php
class sinif{
public static function OrnekAl(){
return null;
}
}
class test extends sinif{}
echo get_class(new sinif);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Önemli Ortak Kullanılabilecek Komutlar

PHP
18 lines
<?php
ob_start();//html boşluklarını sıkıştırma
session_start();//oturum başlatma
header('Content-Type: text/html; charset=utf-8');//karakter seti seçimi
header("Cache-Control: no-cache, must-revalidate"); //önbellek almamak için
error_reporting (E_ERROR | E_WARNING | E_PARSE);//hataları göstermek için
set_time_limit(0);//zaman aşımı önlemek için
extract($_POST,EXTR_SKIP); //$_POST["id"] yi $id'ye çevirir
extract($_GET,EXTR_SKIP); //$_GET["id"] yi $id'ye çevirir
extract($_COOKIE,EXTR_SKIP);//$_COOKIE["id"] yi $id'ye çevirir
/*
sayfa içeriği
*/
ob_end_flush();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX