2016-11-11 135 views
0

我想从1个表格更新两个表,但它不断给我这个错误更新MySQL表 - PHP

警告:mysqli_fetch_assoc()预计参数1被mysqli_result,在给定的boolean C:\ XAMPP \ htdocs中\ ethicaOak \上线27

公共\ prop.php我敢肯定,这不是做只是不知道为什么它给我的错误会有些帮助一个有问题?

if (isset($_POST['submit'])){ 
    $prop_title = $_POST['prop_title']; 
    $prop_summary = $_POST['summary']; 
    $prop_details = $_POST['prop_details']; 
    $prop_details = $_POST['category']; 
    $price = $_POST['price']; 
    $price_before = $_POST['price_before']; 
    $from = $_POST['from']; 
    $currency = $_POST['currency']; 
    $payment = $_POST['payments']; 

    $query = "UPDATE properties SET "; 
    $query .= "prop_title = '{$prop_title}' "; 
    $query .= "prop_summary = '{$prop_summary}' "; 
    $query .= "prop_details = '{$prop_details}' "; 
    $query .= "category = '{$category}' "; 
    $query .= "LIMIT 1 "; 
    $query .= "WHERE property_id = '{$manage_prop_id}'"; 
     //{$manage_prop_id} 
    $result = mysqli_query($connection, $query); 

    $rows = mysqli_fetch_assoc($result); 

    $query = "UPDATE prop_price SET "; 
    $query .= "price = '{$price}' "; 
    $query .= "price_before = '{$price_before}' "; 
    $query .= "currency = '{$currency}' "; 
    $query .= "per_payment = '{$per_payment}' "; 
    $query .= "from_payment = '{$from_payment}' "; 
    $query .= "WHERE price_id = '{$manage_prop_id}'"; 
     //{$manage_prop_id} 
    $result2 = mysqli_query($connection, $query); 

    $rows2 = mysqli_fetch_assoc($result2); 
     }else{ 
    ?> 

    <?php 

     $manage_prop_id = null; 

     if (isset($_GET['manage'])){ 
     $manage_prop_id = $_GET['manage']; 
     } 
     else 
     { 
     $manage_prop_id = null; 
     } 


    ?> 

     <input type="text" class="form-control" id="prop_title" name= "prop_title"    
          placeholder="Property Title" value ="<?php echo  $rows['prop_title'];?>" >  
     <input type="text" class="form-control" name="summary" id="summary" placeholder="Property Summary" value = "<?php echo $rows['prop_summary'];?>"> 

     <input type="text" class="form-control" id="price" name= "price" placeholder="Price of Property" value = "<?php echo $rows2['price'];?>"> 
+0

你的代码可以广泛应用于[SQL注入攻击](https://en.wikipedia.org/wiki/SQL_injection)。你应该阅读[参数化查询](https://secure.php.net/manual/en/mysqli.prepare.php)。 – Chris

+4

'mysqli_query()'在成功更新时返回'TRUE'。它只返回'SELECT,SHOW,DESCRIBE或EXPLAIN'查询的数据。 http://php.net/manual/en/mysqli.query.php 为什么在更新后尝试读取行? – Jaime

回答

0

您要定义的类别为prop_details

$prop_details = $_POST['category']; 

,并试图使用不存在

$query .= "category = '{$category}' "; 

这样一个$类变量,你的查询可以失败,返回false。

编辑:正如@Jaime所说,更新查询只返回true或false,没有办法(也没有理由)提取更新,因为它不返回数据。