MySQL veritabanı PHP dizinin saklanması içeriği

3 Cevap php

I am having trouble storing array contents in mysql I am using the code below

foreach($found_entry as $key => $sd) {
         echo "$key => $sd <br>";
$insert_found_row = mysql_query("INSERT INTO myTable values ID = \"$sd[0]\" ,Folder = \"NULL\", Tsi = \"$sd[11]\", PT= \"NA\" ") or die(mysql_error());  
            echo "$sd";

Ben olsun değerlerini echo

0 => ST10928
1 =>
2 => 2010-02-19 03:37:16
3 => \\fs1\
4 =>
5 =>
6 =>
7 =>
8 => M1
9 =>
10 =>
11 => LOG1.TXT 

3 Cevap

Sizin sorgu sözdizimi yanlış. SET yerine VALUES arasında kullanın. Her iki $sd[0] ve $sd[11] başvuran olarak da, muhtemelen, tüm foreach döngüsü gerekmez. Böyle bir şey deneyin:

$query = sprintf("INSERT INTO
             myTable
         SET
             ID = '%s',
             folder = NULL,
             Tsi = '%s',
             PT = 'NA'",
             mysql_real_escape_string($found_entry[0]),
             mysql_real_escape_string($found_entry[11])
         );

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

If I use $sd[0], only the first character is getting displayed.

$ Sd dizinizin değeri (örneğin "ST10928") olduğunu, ancak bunu $ sd [0] sadece ilk elemanını (= harf) dönmek gerekir, bir dizi kendisi olarak değerini tedavi ediyoruz.

(Yerine dizi yineleme ve değerlerini dilimleme) veritabanına içine diziden değerler eklemeye çalışıyorsanız, belki $found_entry[0] yerine $sd[0] kullanımı gereken ve {[ (2)]} için $sd[11]?

Adding data to MySQL with a PHP Array


Inserting data into MySQL

Kodunuzda her alan için bir ekleme yapmaktadır.

Ancak, çoğu durumda elden önce alan adlarını bilmek ve böylece tüm alanları ile tek bir INSERT yapabilirsiniz.

$sql = 'INSERT INTO tbl_name (field_a,field_b,field_c) VALUES('.$found_entry['field_a'].','.$found_entry['field_b'].','.$found_entry['field_c'].');';

Bu gerekli sorgu sayısı azalır ve böylece kod çalıştırmak daha hızlı ve daha az kaynak kullanmasını sağlar.

Default values

Bir değer bilinmemektedir ve DB varsayılan bir değer eklemek gerekir null iletebilirsiniz.