makale tablodaki görüntüyü yükledikten sonra image_id saklanması

4 Cevap php

Buna göre question i upload görüntü oluşturmak için ilerlemeler, ama şimdi ben makaleler denir başka bir tabloya image_id saklamak gerekir, bu doğru olup olmadığını bilmiyorum, ama tablo görüntüden image_id seçmek için çalıştı böyle

$select_image=mysql_query("select image_id from image where image_name = $fileName") or die(mysql_error());

ve benim gibi bu yazı ekleme sorgusuna sonucunu almak

$fetch=mysql_fetch_array($select_image);

$qeuery=mysql_query("insert into articles (article_name,article_category,article_subcategory,article_body,article_summary,article_tags,article_photo,article_timedate) values ('$article_title','$CategoryID','$ProductID','$article_body','$article_summary','$fetch[image_id]','$time')") or die ('Error, Query Faild'.mysql_error());

Bu doğru mu? mysql_error "'where yan tümcesi' Bilinmeyen sütun 'Penguins.jpg'" diyerek devam ediyor

4 Cevap

Eğer arayarak son eklenen id seçebilirsiniz

SELECT LAST_INSERT_ID()

yerine

select image_id from image where image_name = $fileName

This is mysql syntax related question. All data goes directly into the query must be prepared using 2 rules:
1. data must be escaped using mysql_real_escape_string() function
2. enclosed in quotes

Yani, kodu olmalıdır

$fileName=mysql_real_escape_string($fileName);
$select_image=mysql_query("select image_id from image where image_name = '$fileName'") or die(mysql_error()); 

Doğru bu sorgudan önce görüntü takılı Ayrıca, eğer, onu seçmek gerek kimliği bulunuyor. Kullanmak mysql_insert_id() function olabilir

Sorun dosya alıntı değil, bu yüzden MySQL sunucusu sorguyu işlemek için çalışıyor:

select image_id from image where image_name = Penguins.jpg

Ne kötü birisi olarak adlandırılan bir dosya yükledi olduğunu

1; BURAYA EVIL MySQL sorgusu

onlar sunucu üzerinde keyfi MySQL çalıştırmak mümkün olacaktır. Bu bir SQL enjeksiyon saldırısı olarak bilinir.

PHP manual page bu kapsadığını göz atın.

Sen ilk sorguda $fileName tırnak koymak gerekir, yani '$fileName'