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.

Sql Sorgu Kontrol Sınıfı

<?php
class sqlKontrol{
	var $id_alan;
	var $id_deger;
	function sec($tablo,$alan,$deger){
		$sorgu="SELECT * FROM $tablo WHERE ";
		for($c=count($alan);$c>0;$c--) {
			$id=$c-1;
			$sorgu.=" ".$alan[$id]."='".$deger[$id]."' ";
			if($c-1!=0){
				$sorgu.=" AND ";
			}
		}
		return $sorgu;
	}
	function guncelle($tablo,$alan,$deger){
		$sorgu="UPDATE $tablo SET ";
		for($c=count($alan);$c>0;$c--) {
			$id=$c-1;
			$sorgu.=" ".$alan[$id]."='".$deger[$id]."' ";
			if($c-1!=0){
				$sorgu.=" , ";
			}
		}
		$sorgu.=" WHERE $this->id_alan = '$this->id_deger'";
		return $sorgu;
	}
	function ekle($tablo,$alan,$deger){
		$sorgu="INSERT INTO $tablo SET ";
		for($c=count($alan);$c>0;$c--) {
			$id=$c-1;
			$sorgu.=" ".$alan[$id]."='".$deger[$id]."' ";
			if($c-1!=0){
				$sorgu.=" , ";
			}
		}
		return $sorgu;
	}
	function sil($tablo,$alan,$deger){
		$sorgu="DELETE FROM $tablo WHERE ";
		for($c=count($alan);$c>0;$c--) {
			$id=$c-1;
			$sorgu.=" ".$alan[$id]."='".$deger[$id]."' ";
			if($c-1!=0){
				$sorgu.=" AND ";
			}
		}
		return $sorgu;
	}
} 
$data = new sqlKontrol;
echo $data->sec('table',['name1','name2'],['value1','value2']);
echo "<br>";
$data->id_alan="id";
$data->id_deger="1";
echo $data->guncelle('table',['name1','name2'],['value1','value2']);
echo "<br>";
echo $data->ekle('table',['name1','name2'],['value1','value2']);
echo "<br>";
echo $data->sil('table',['name1','name2'],['value1','value2']);
?>

Çıktısı

SELECT * FROM table WHERE name1='value1' 
SELECT * FROM table WHERE name2='value2' AND name1='value1' 
UPDATE table SET name2='value2' , name1='value1' WHERE id = '1'
INSERT INTO table SET name2='value2' , name1='value1' 
DELETE FROM table WHERE name2='value2' AND name1='value1'

 

Çift veya Birden Fazla Kayıtları Düzenleme, Silme

Böyle bir tablomuz olduğunu varsayalım

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ad` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

INSERT INTO `test` (`ad`) VALUES ('veli'),('ali'),('veli'),('ali'),('veli'),('ali');

Tekrar eden tüm verileri silmek için (Çiftten fazla var ise tercih edilir)
(Not:En son 1 tane bırakılır)

DELETE t1 FROM test t1, test t WHERE t1.id < t.id AND t1.ad = t.ad

Tekrar eden en son eklenen kaydı silme(Genelde çift kayıtlar için)(Son ekleneni silerek)
(Not:3 tane aynı veri var ise 2 tane kalır)
(Not:2 tane aynı veri var ise 1 tane kalır)
(Not:1 tane aynı veri var ise yine 1 tane kalır)
(Yani sürekli tekrarlanırsa 1’er 1’er silerek üstteki yaptığımız işleme ulaşılmış olur)

DELETE  
  FROM test 
    WHERE exists (  
      select * from  
        (select MAX(p.id) ciftid,count(*) 
          FROM test as p  
            GROUP BY p.ad 
              HAVING count(*)>1 
        ) as cift 
        WHERE cift.ciftid=test.id  
    )

Çıktısı

+------+
|  ad  |
+------+
| ali  |
| veli |
+------+

 

Veritabanına Dosya ile Veri Yüklemek

PDO ile

<?php 
$db = new PDO($dsn, $user, $password);

$sql = file_get_contents('file.sql');

$qr = $db->exec($sql);
?>

Komut ile

<?php
$command = "mysql -u{$vals['db_user']} -p{$vals['db_pass']} "
 . "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";

$output = shell_exec($command . '/shellexec.sql');
?>

Dosyayı okuyup parça sorgulatarak

<?php 
function run_sql_file($location){
    $commands = file_get_contents($location);
    $lines = explode("\n",$commands);
    $commands = '';
    foreach($lines as $line){
        $line = trim($line);
        if( $line && !startsWith($line,'--') ){
            $commands .= $line . "\n";
        }
    }
    $commands = explode(";", $commands);
    $total = $success = 0;
    foreach($commands as $command){
        if(trim($command)){
            $success += (@mysql_query($command)==false ? 0 : 1);
            $total += 1;
        }
    }
    return array(
        "success" => $success,
        "total" => $total
    );
}

function startsWith($haystack, $needle){
    $length = strlen($needle);
    return (substr($haystack, 0, $length) === $needle);
}
?>

 

Son Yapılan İşlemin Hangi Veritabanına Eklendiğini Kontrol Etme

Kendi ihtiyacımdan dolayı yazdım.Hazır scriptlerdeki karmaşık form kayıtlarının hangi veritabanına  eklediğini bulmak için geliştirdim.Umarım işinize yarar.

<?php 
/*#####################AYARLAR################################*/
$dbname = 'wp';//veritabanı adı
mysql_connect('localhost', 'root', 'mysql');//bağlantı bilgiler
/*############################################################*/

header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Istanbul');
mysql_select_db($dbname);
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);
$filename = 'DB.TXT';
if(@$_GET['delete']){
if(is_file($filename)) {
	unlink($filename);
}elseif(@$_GET['update']){
header("Location: index.php");
}else{header("Location: index.php");}
}
if (!file_exists($filename)) {
	$file = fopen($filename, 'w');
	while ($row = mysql_fetch_row($result)) {
		$r = mysql_fetch_array(mysql_query("SELECT count(*) as c FROM ".$row[0]));
		$total = $r["c"];
		fwrite($file, $row[0]."(".$total.")" . "n");
	}
	fclose($file);
	header("Location: index.php");
}else{
$fp = @fopen($filename, 'r'); 
if ($fp) {
   $array = explode("n", fread($fp, filesize($filename)));
}
	$i=-1;
	echo '<table border=1>
	<tr><th colspan=2>'.$filename.' - '.date("d.m.Y H:i:s",filemtime($filename)).'</th></tr>
	<tr><th colspan=2>
	<button onclick="javascript:location.href='index.php?update=ok'">Veritabanı Güncelle</button>
	<button onclick="javascript:location.href='index.php?delete=ok'">DB.TXT Güncelle</button>
	<tr><th>CANLI VERİTABANI</th><th>KAYITLI DOSYA YEDEĞİ</th></tr>';
	while ($row = mysql_fetch_row($result)) {
		$i++;
		$r = mysql_fetch_array(mysql_query("SELECT count(*) as c FROM ".$row[0]));
		$total = $r["c"];
		echo "<tr>";
		echo "<td>";
		echo $row[0]."(".$total.")";
		echo "</td><td>";
		echo $array[$i];
		echo "</td>";
		echo "</tr>";
	}
	echo "</table>";
}
?>

 

Pdo Veritabanı Sınıfı

<?php 
// bağlantı ayarları///////////////////////////////////////////////////////////////////////////////
Class dbConfig extends PDO {

	protected $dbConfig = array();

    protected function createConfig() {
        $this->dbConfig['host'] = 'localhost';
        $this->dbConfig['username'] = 'root';
        $this->dbConfig['password'] = '';
        $this->dbConfig['dbname'] = 'test';
    }

}
// veritabanı sınıfı //////////////////////////////////////////////////////////////////////////////
Class Database extends dbConfig {

	protected $connection;

	function __construct() {

		parent::createConfig();
		try{
			$dsn = 'mysql:host=' . $this->dbConfig['host'] . ';dbname=' . $this->dbConfig['dbname'];
			$this->connection = new PDO($dsn, $this->dbConfig['username'], $this->dbConfig['password']);
            		$this->connection->query("SET NAMES utf8");
        	 	$this->connection->query("SET CHARACTER SET utf8");
            		$this->connection->query("SET COLLATION_CONNECTION = 'utf8_general_ci");
			return true;
		}catch(PDOException $error){
			$errorMesage = 'Hata : Veritabanı bağlantısı kurulamadı !<br>Hata Mesajı =>'.$error->getMessage();
			return $errorMesage;
		}
    }

	public function selectOr($table, $array = null) {
		if($array == null){
			$sql = "SELECT * FROM ".$table;
		}else{			
			$columns = array_keys($array);
			$values = array_values($array);
			$sqlString = "";
			for($i=0;$i<count($columns);$i++){
				if($i==count($columns)-1){
					$sqlString .= $columns[$i]." = '".$values[$i]."' ";
				}else{
					$sqlString .= $columns[$i]." = '".$values[$i]."' or ";
				}
			}
			$sql = "SELECT * FROM ".$table." WHERE ".$sqlString;
		}
        $select = $this->connection->query($sql);
        if ($select) {
            $row = $select->fetchAll();
            return $row;
        } else {
            return false;
        }
	}

	public function selectAnd($table, $array = null) {

		if($array == null){
			$sql = "SELECT * FROM ".$table;
		}else{			
			$columns = array_keys($array);
			$values = array_values($array);
			$sqlString = "";
			for($i=0;$i<count($columns);$i++){
				if($i==count($columns)-1){
					$sqlString .= $columns[$i]." = '".$values[$i]."' ";
				}else{
					$sqlString .= $columns[$i]." = '".$values[$i]."' and ";
				}
			}
			$sql = "SELECT * FROM ".$table." WHERE ".$sqlString;
		}
        $select = $this->connection->query($sql);
        if ($select) {
            $row = $select->fetchAll();
            return $row;
        } else {
            return false;
        }	
	}

	public function selectOrLimit($table, $array = null, $limit, $start = null) {
		if($start == null){
			$limitStr = "LIMIT ".$limit;
		}else{
			$limitStr = "LIMIT ".$start.", ".$limit;
		}
		if($array == null){
			$sql = "SELECT * FROM ".$table." ".$limitStr;
		}else{	
			$columns = array_keys($array);
			$values = array_values($array);
			$sqlString = "";
			for($i=0;$i<count($columns);$i++){
				if($i==count($columns)-1){
					$sqlString .= $columns[$i]." = '".$values[$i]."' ";
				}else{
					$sqlString .= $columns[$i]." = '".$values[$i]."' or ";
				}
			}
			$sql = "SELECT * FROM ".$table." WHERE ".$sqlString." ".$limitStr;
		}
        $select = $this->connection->query($sql);
        if ($select) {
            $row = $select->fetchAll();
            return $row;
        } else {
            return false;
        }
	}

	public function selectAndLimit($table, $array = null, $limit, $start = null) {
		if($start == null){
			$limitStr = "LIMIT ".$limit;
		}else{
			$limitStr = "LIMIT ".$start.", ".$limit;
		}
		if($array == null){
			$sql = "SELECT * FROM ".$table." ".$limitStr;
		}else{
			$columns = array_keys($array);
			$values = array_values($array);
			$sqlString = "";
			for($i=0;$i<count($columns);$i++){
				if($i==count($columns)-1){
					$sqlString .= $columns[$i]." = '".$values[$i]."' ";
				}else{
					$sqlString .= $columns[$i]." = '".$values[$i]."' and ";
				}
			}
			$sql = "SELECT * FROM ".$table." WHERE ".$sqlString." ".$limitStr;
		}
        $select = $this->connection->query($sql);
        if ($select) {
            $row = $select->fetchAll();
            return $row;
        } else {
            return false;
        }
	}

	public function insert($table, $array) {

		$columns = implode(", ", array_keys($array));
		$values  = implode("',' ", array_values($array));

		$sql = "INSERT INTO ".$table."(".$columns.") VALUES ('".$values."')";
		$insert = $this->connection->query($sql);
        if ($insert) {
            return $this->connection->lastInsertId($table);
        } else {
            return false;
        }
	}

	public function update($table, $id, $array) {

		$columns = array_keys($array);
		$values = array_values($array);
		$sqlString = "";
		for($i=0;$i<count($columns);$i++){
			if($i==count($columns)-1){
				$sqlString .= $columns[$i]." = '".$values[$i]."' ";
			}else{
				$sqlString .= $columns[$i]." = '".$values[$i]."', ";
			}
		}
		$sql = "UPDATE ".$table." SET ".$sqlString." WHERE id=" . $id;

		$update = $this->connection->query($sql);

        if ($update) {
            return true;
        } else {
            return false;
        }
	}

	public function delete($table, $id) {

		$sql = 'DELETE FROM ' . $table . ' WHERE id=' . $id;

        $delete = $this->connection->exec($sql);

        if ($delete) {
            return true;
        } else {
            return false;
        }
	}

	public function query($sql) {

		$query = $this->connection->query($sql);

        if ($query) {
            return $query;
        } else {
            return false;
        }
	}

	public function count($table, $array = null) {
		if($array == null){
			$sql = "SELECT count(*) from " . $table;
		}else{

			$columns = array_keys($array);
			$values = array_values($array);
			$sqlString = "";
			for($i=0;$i<count($columns);$i++){
				if($i==count($columns)-1){
					$sqlString .= $columns[$i]." = '".$values[$i]."' ";
				}else{
					$sqlString .= $columns[$i]." = '".$values[$i]."' and ";
				}
			}

			$sql = "SELECT count(*) from " . $table. " WHERE ". $sqlString;
		}
        $count = $this->connection->prepare($sql);
        $count->execute();
        return $count->fetchColumn();
	}

	function __destruct() {

        $this->connection = null;
    }
}
///////////////////////////////////////////////////////////////////////////////////////////////////
            $db = new Database; 
//Insert Sorgusu
            $userArray = array( 
            'username' => 'deneme', 
            'password' => md5('123456'), 
            'full_name' => 'Deneme DENEME', 
            'email' => 'deneme@deneme.com', 
            'auth' => 'user', 
            'lang' => 'tr' 
            ); 
            $table = "users"; 
            $db->insert($table, $userArray); 
//Update Sorgusu
            $userArray = array( 
            'username' => 'deneme1', 
            'password' => md5('1234'), 
            'lang' => 'en' 
            ); 
            $id=3; 
            $table = "users"; 
            $db->update($table,$id, $userArray); 
//Delete Sorgusu
            $id=3; 
            $table = "users"; 
            $db->delete($table,$id); 
//Count Sorgusu Tüm Tablo
            $table = "users"; 
            $db->count($table); 
//Count Sorgusu Sütun
            $sayılacak = array( 
            'lang' => 'tr', 
            'auth' => 'admin' 
            ); 
            $table = "users"; 
            $db->count($table,$sayılacak); 
//Select and Sorgusu
            $login = array( 
			'username' => 'username', 
			'password' => md5('password'); 
            $user = $db->selectAnd("users", $login); 
            print_r($user); 
//Select or Sorgusu
            $yetkili = array( 
			'username' => 'username', 
			'auth' => 'admin'); 
            $yetkili = $db->selectOr("users", $yetkili); 
            //eğer kayıt varsa herzaman iki boyutlu bir dizi döner yoksa boş döner 
            print_r($yetkili); 
//Select or Limit Sorgusu
            $yetkili = array( 
			'username' => 'username', 
			'auth' => 'admin'); 
            $yetkili = $db->selectOrLimit("users", $yetkili,5); 
            //eğer kayıt varsa herzaman iki boyutlu bir dizi döner yoksa boş döner ve limit kadar veri getirir 
            print_r($yetkili); 
//Limitte başlangıç değeri
            $yetkili = array( 
			'username' => 'username', 
			'auth' => 'admin'); 
            $başlangıc= 4; 
            $limit=7; 
            $yetkili = $db->selectOrLimit("users", $yetkili, $limit, $başlangıc); 
            //eğer kayıt varsa herzaman iki boyutlu bir dizi döner yoksa boş döner ve limit kadar veri getirir 
            print_r($yetkili); 
/*Eğer paremetre göndermek istemiyorsak şu şekilde işlem ysparız selectOrLimit("users", null, $limit, $başlangıc)*/
//Select and Limit Sorgusu
            $user= array( 
			'username' => 'username', 
			'password' => md5('password')); 
            $user = $db->selectAndLimit("users", $user,1); 
            print_r($yetkili); 
//Manuel Sorgu
            $sql = "SELECT (ad,soyad) FROM user ad='fatih' and soyad='göl'"; 
            $gelen = $db->query($sql); 
            $gelen = $gelen->fetchAll(); 
            print_r($gelen); 
?>

 

PDO ile Veritabanı Bağlantısı ve Listeleme

Sql kodlarımız

CREATE TABLE IF NOT EXISTS `users` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  PRIMARY KEY (`uye_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Tablo döküm verisi `users`
--
INSERT INTO `users` (`user_id`, `username`) VALUES (1, 'admin'),(2, 'test'),(3, 'user');

Php kodarımız

<?php 
///////////////////////BAGLANTI FONKSIYONUMUZ//////////////////////////
function pdo_mysql_baglan($HOST,$NAME,$USER,$PASS,$CHAR){
return $GLOBALS["baglan"]=array(0=>"mysql:host=$HOST;dbname=$NAME;charset=$CHAR",1=>"$USER",2=>"$PASS");
}
////////////////////////////////////////////////////////////////////////////////////

pdo_mysql_baglan("localhost","wordpress","root","123456","utf8");
$pdo = new pdo($baglan[0],$baglan[1],$baglan[2]);

$query = $pdo->query("SELECT * FROM users");
foreach( $query->fetchAll(PDO::FETCH_ASSOC) as $data){
	echo $data["username"];
	echo "<br>";
}

?>

Onaya Göre İsim Listelemek

Veritabanımızı oluşturalım

CREATE TABLE uretim
	(
     id int auto_increment primary key, 
     musteri varchar(255), 
     adet int(11),
     onay int(1)
    );

INSERT INTO uretim (id,musteri,adet,onay)
VALUES
(1, '1.Müşteri',5,0),
(2, '2.Müşteri',8,1),
(3, '3.Müşteri',2,2),
(4, '4.Müşteri',7,3);

baglan.php adlı dosyamızdan veritabanı bağlantımızı oluşturmuş varsayıp, kodlarımızı ekliyoruz.

<?php include "baglan.php"; 
?>
	<table border="1"  bordercolor="#111111" width="100%">
      <tr>
        <td width="25%" >
			<table border="1"  bordercolor="#111111" width="100%">
				<tbody>
					<th>Bekleyen</th>
				</tbody>
				<thead>
					<tr>
						<td>Müşteri Adı</td><td>Adet</td>
					</tr>
					<?php
					$veri=mysql_query("select * table uretim Where onay = 1");
					while($v=mysql_fetch_array($veri)){
						echo '<tr><td>'.$v["musteri"].'</td><td>'.$v["adet"].'</td>';
					}
					?>
					</tr>
				</thead>
			</table>
        </td>
        <td width="25%" >
			<table border="1"  bordercolor="#111111" width="100%">
				<tbody>
					<th>Kaplama</th>
				</tbody>
				<thead>
					<tr>
						<td>Müşteri Adı</td><td>Adet</td>
					</tr>
					<?php
					$veri=mysql_query("select * table uretim Where onay = 2");
					while($v=mysql_fetch_array($veri)){
						echo '<tr><td>'.$v["musteri"].'</td><td>'.$v["adet"].'</td>';
					}
					?>
					</tr>
				</thead>
			</table>
        </td>
        <td width="25%" >
			<table border="1"  bordercolor="#111111" width="100%">
				<tbody>
					<th>Taşlama</th>
				</tbody>
				<thead>
					<tr>
						<td>Müşteri Adı</td><td>Adet</td>
					</tr>
					<?php
					$veri=mysql_query("select * table uretim Where onay = 3");
					while($v=mysql_fetch_array($veri)){
						echo '<tr><td>'.$v["musteri"].'</td><td>'.$v["adet"].'</td>';
					}
					?>
					</tr>
				</thead>
			</table>
        </td>
        <td width="25%" >
			<table border="1"  bordercolor="#111111" width="100%">
				<tbody>
					<th>Sevkiyat</th>
				</tbody>
				<thead>
					<tr>
						<td>Müşteri Adı</td><td>Adet</td>
					</tr>
					<?php
					$veri=mysql_query("select * table uretim Where onay = 1");
					while($v=mysql_fetch_array($veri)){
						echo '<tr><td>'.$v["musteri"].'</td><td>'.$v["adet"].'</td>';
					}
					?>
					</tr>
				</thead>
			</table>
        </td>
      </tr>
    </table>