从数据库中获取数据并将其放入数组中

时间:2015-07-15 15:02:42

标签: php

我有这段代码:

$product_array = array(
   "106" => array(
      'product_id'=>'106', 
      'product_catgegory'=>'Accessories', 
      'product_name'=>'Headphone with mic',
      'product_desc'=>'', 
      'product_price'=>'148.85', 
      'product_img'=>'products/product8.jpg'
   )
);

我总是从数据库中获取数据:

$query = "select * from meal where cat='$id'";
$encode = mysqli_query($con,"SET NAMES utf8");
$func = mysqli_query($con , $query);
while($row = mysqli_fetch_array($func)) {
   $ida = $row['id'];
   $name = $row['name'];
   $img = $row['img'];
   $id = $row['id'];
   $price = $row['price'];
   $desc = $row['desc'];
}

我的问题是我想在数组中写入从数据库接收的数据 例如:

$product_array = array(
   "106" =>array(
      'product_id'=>'$id', 
      'product_catgegory'=>'$cat', 
      'product_name'=>'$name',
      'product_desc'=>'', 
      'product_price'=>'$price', 
      'product_img'=>'$img'
   )
);

1 个答案:

答案 0 :(得分:0)

<强>原因

您不应该使用单引号,因为'$id'之类的变量不会被PHP解释。

<强>解

请参阅下面的更新代码。我不清楚product_catgegory应该使用什么,所以我把它留空了。

$query = "select * from meal where cat='$id'";
$encode = mysqli_query($con, "SET NAMES utf8");
$func = mysqli_query($con, $query);
while($row = mysqli_fetch_array($func)) {
   $product_array[$row['id']] = array(
      'product_id'        => $row['id'], 
      'product_catgegory' => '', 
      'product_name'      => $row['name'],
      'product_desc'      => $row['desc'], 
      'product_price'     => $row['price'], 
      'product_img'       => $row['img']
   )
}

备注

确保在运行$id = mysqli_real_escape_string($con, $id);之前执行mysqli_query()之类的操作,否则,您将对SQL注入攻击开放。