MySQL sorgu için bir PHP değişken geçmek

3 Cevap php

Ne bu kod ile yanlış? Ben boş bir dizi olsun. Ben sorguya bir PHP değişkeni geçirerek, ama çalışmıyor; Ben bir kodlanmış değer vermek zaman sorgu bir sonuç döndürür.

echo $sub1 = $examSubject[$i];
$subType = $examType[$i];
$query = $this->db->query("select dSubject_id from tbl_subject_details where dSubjectCode='$sub1'");
print_r($query->result_array());

3 Cevap

"SQL enjeksiyon" Look up.

I $this->db->query aşina değilim; ne veritabanı sürücüsü kullanıyorsunuz? Değişkenleri kaçan için sözdizimi sürücüsünden sürücü değişir.

Burada, bir PDO örnek:

$preqry = "INSERT INTO mytable (id,name) VALUES (23,?)";
$stmt = $pdo->prepare($preqry);

$stmt->bindparam(1,$name);
$stmt->execute();

görmek için başarısız ne veritabanı soyutlama katmanı ($ this-> db), buradan example1 gelen düzeltilmiş kod gelmez the mysql_fetch_assoc documentation

<?php
  // replace as you see fit
  $sub1 = 'CS1';

  // replace localhost, mysql_user & mysql_password with the proper details
  $conn = mysql_connect("localhost", "mysql_user", "mysql_password");
  if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
  }

  if (!mysql_select_db("mydbname")) {
    echo "Unable to select mydbname: " . mysql_error();
    exit;
  }

  $sql = 'SELECT `dSubject_id` ';
  $sql .= 'FROM `tbl_subject_details` ';
  $sql .= "WHERE `dSubjectCode` ='$sub1';";

  $result = mysql_query($sql);

  if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
  }

  if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
  }

  while ($row = mysql_fetch_assoc($result)) {
    echo $row['dSubject_id'];
  }

  mysql_free_result($result);

?>

Bana çıktı ne olduğunu bilsin, ben diyecekler tahmin ediyorum: 6

Eğer ($ Bu-> db-> sorgu deyimi) kullanıyorsanız CodeIgniter çerçevedir. Eğer öyleyse, neden denemiyorsunuz:

$this->db->where('dSubjectCode',$sub1);
$query = $this->db->get('tbl_subject_details');

Bu işe yaramazsa, önceki kodda bir hata var ve $ sub1 bunu olmasını bekliyoruz ne değildir.