Mysql içine php dizi veri ekleme çalışmıyor

4 Cevap php

Merhaba benim tablonun ikinci alana eklemek çalışıyorum ama (tablo tamamen boş kalır) çalışmadığını [] dizisi $ isim var. Ben yanlış ne yapıyorum benim kod hata bulamıyorum?

$username="us";
$password="pw";
$database="db";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "error");

$i=0;
while ($i < 5) {


$query = "INSERT INTO table VALUES ('','$name[i]','','')";
mysql_query($query);

$i++
}

mysql_close();

Herhangi bir fikir lütfen? Teşekkür ederim.

4 Cevap

Bu $name anahtarının için sürekli bir i yerine $i kullanılır. Yani bu deneyin:

"INSERT INTO table VALUES ('','".$name[$i]."','','')"

Ayrıca kullanarak MySQL sorgusu için değerini kaçmak mysql_real_escape_string gerekir:

"INSERT INTO table VALUES ('','".mysql_real_escape_string($name[$i])."','','')"

Evet, ilk yapacak tüm değerine sahip bir sütun 1, 3 ile giriş ve 4 boş, ve sütun 2 koymak $name[i]. Bir dize bir değişken olması, çift tırnak içinde olması gerekir. Ama sadece değişken olabilir zaman yapmanın nokta görmüyorum.

Ayrıca, $name[i] olması gerekiyordu $name[$i].

Eğer böyle sorguları birleştirerek zaman kaçmak için emin olun.

$ Sorgu = "(" ','',''.. ($ Isim [$ i]) mysql_real_escape_string'',) "masa VALUES INSERT INTO"';

Bunu yapmazsanız size SQL injection kötülük karşı savunmasız olabilir

Bu gibi sorguyu çalıştırmayı deneyin:

mysql_query($query) or die(mysql_error());

Bu size sorgu ile ilgili bir sorun varsa yanlış ne yaptığınızı daha iyi bir fikir verecektir. Ayrıca, hata ayıklama için SQL yazdırmak isteyebilirsiniz:

echo "Query $i: $query<br />"