2016-04-03 21 views
1
public $id; 
public $filename; 
public $type; 
public $size; 
public $description; 
public $title; 

bu i için hazırlanmış bir deyimi yazabilirsiniz eğer ben , MySQL

$sql = "INSERT INTO photographgallery 
       (filename,type,size,description,title) 
    VALUES ('$sanitized_filename', '$sanitized_type', '$sanitized_size', '$sanitized_description', '$sanitized_title')"; 

ben merak, kötü olan şimdi kullanıyorum budur Bu konuda nasıl giderdim, yığınım. yardım et.

+0

Hangi API kullanıyorsunuz? mysql_ * ',' mysqli' veya 'PDO'? (İpucu: 'mysql_ *' kullanma.) –

+0

@Darwin von Corax "mysqli" – ipkiss

+0

@DarwinvonCorax mysqli_connect – ipkiss

cevap

1
// Your variables, however you get them.  
$filename = "name1"; 
$type = "type1"; 
$size = 100; 
$desc = "test desc"; 
$title = "title" 

if($stmt = $mysqli->prepare("INSERT INTO photographgallery (filename, type, size, description, title) VALUES (?, ?, ?, ?, ?)") { 
    $stmt->bind_param('ssiss', $filename, $type, $size, $desc, $title); //Assuming the variables are string, string, int, string, string respectively 
    $stmt->execute(); 
    $stmt->close(); 
} 

Kodun etrafındaki öğelerin kullanılması, yalnızca hazırlık ifadesinde hata bulunmadığında çalışmasını sağlar. Bir hata varsa, hazırlık deyimi false değerini döndürür.

2

SQL'inizde, soru işareti yer tutucularıyla (?) değişkenleri değiştirin. Sorunuzu mysqli::prepare'a ileterek bir mysqli_stmt oluşturun ve değişkenlerinizi mysqli_stmt::bind_param numaralı çağrıya sahip yer tutuculara bağlayın. Eklemek için mysqli_stmt::execute numaralı telefonu arayın. Şöyle görünüyor:

$sql = "INSERT INTO photographgallery 
      (filename, type, size, description, title) 
      VALUES 
      (?, ?, ?, ?, ?)"; 
$stmt = $conn->prepare($sql); 
// The string 'ssiss' in the following means 'string, string, int, string, string' 
// and describes the types of the parameters. 
$stmt->bind_param('ssiss', $filename, $type, $size, $description, $title); 
$stmt->execute(); 
$stmt->close(); // always clean up after yourself 
+0

Kapatma işlemini gerçekleştirmeden önce prep sstemini yürütmek isteyebilirsiniz ... – cpugourou

+0

Doh! Bu oldukça berbat bir yazım hatasıdır ... –

+0

@DarwinvonCorax teşekkür ederim. – ipkiss