اگر کاربر در query متغیری مانند DROP TABLE table و غیره رو وارد کند قطعا به مشکل بر می خورید برای جلوگیری از این مشکل می توانید راه های زیر را امتحان کنید :
استفاده از pdo
1 2 3 4 5 6 7 |
$statem = $pdo->prepare('SELECT * FROM names WHERE name = :id'); $statem->execute(array('id' => $id)); foreach ($statem as $row) { // کار با متغیر $row } |
یا استفاده از mysqli
1 2 3 4 5 6 7 8 9 |
$statem = $dbConnection->prepare('SELECT * FROM names WHERE id = ?'); $statem->bind_param('s', $id); $statem->execute(); $result = $statem->get_result(); while ($row = $result->fetch_assoc()) { // کار با متغیر $row } |
مقداد علی بخشی هستم. موسیقی دان، برنامه نویس، متخصص هوش مصنوعی، علم داده، متخصص بلاکچین و توسعه دهنده ربات های هوشمند.
دانش آموخته مقطع ارشد و دکتری دانشکده فنی دانشگاه تهران هستم. با سابقه تدریس درس برنامه نویسی در دانشگاه (پردیس بین الملل کیش دانشگاه تهران)
$c=@$_POST[“c”];
$count=count($c);
for($i=0;$i<$count;$i++)
{
$id1=$c[$i];
$sq=mysql_query("select * from tablet where $id='$id1'");
$row=mysql_fetch_array($sq);
echo $row['id'];
}من این کدو نوشتم اجرانمیشه
1 – پیغام خطا رو هم همیشه برای ما بفرستید. (تا درک بهتری از مشکل داشته باشیم )
2 – تو خط گرفتن کوئری، فیلد id دیتابیس رو بصورت $id نوشتید. این فیلد، مال دیتابیسه و یک متغیر php نیست و در نتیجه از قواعد نام گذاری متغیرهای php هم تبعیت نمی کنه. مگر اینکه تو دیتابیس واقعا همچین اسمی رو گذاشته باشید که تو خط echo $row[‘id’]; معلوم میشه این چنین نیست. (اظهر من اشمسه که $id دوم تو همون خط باید $ داشته باشه همونطور که تو کد هم هست چون متغیر php ه)
3 – چاکرم و سوالی بود باز همینجا در خدمتم
سلام و خسته نباشيد سايتتون خيلي عاليه بهتون تبريك مي گم
دلتون خوش و تنتون سالم
فقط اگر يكم اموزشاتون گسترده تر بشه و مطالب بيشتري بذاريد
عالييييه
التمااس دعا