I m trying to update an item, and I don't know why $q->affected_rows
is returning '0.
Some data, which seems right when checked:
var_dump($query_parts)
- string(40) "item_description = ?, item_publisher = ?"
var_dump($prep)
- string(3) "sii"
var_dump($values)
array(3) {
[0]=>
&string(12) "Description"
[1]=>
&string(1) "1"
[2]=>
&string(3) "729"
}
var_dump($q)
- bool(true)
public function editItem($editInfo)
{
$userItemIDS = array();
$query_parts = '';
$prep = '';
//move item_id to end of $editInfo array
$item_id = $editInfo['item_id'];
unset($editInfo['item_id']);
$editInfo['item_id'] = $item_id;
$editFiltered = array_filter($editInfo);
$theData = $this->helperClass->data($editFiltered);
$columns = $theData[0];
$values = $theData[1];
(!empty($editInfo['item_description']) ? $prep .= "s" : "");
(!empty($editInfo['item_publisher']) ? $prep .= "i" : "");
(!empty($editInfo['item_year']) ? $prep .= "i" : "");
(!empty($editInfo['item_number']) ? $prep .= "i" : "");
(!empty($item_id) ? $prep .= "i" : "");
unset($editInfo['item_id']);
foreach($editInfo as $key=>$value)
{
if(!empty($editInfo[$key]))
{
$query_parts .= "".$key." = ?, ";
}
}
$query_parts = substr($query_parts, 0, -2);
var_dump($query_parts);
$q = $this->db->mysqli->prepare("UPDATE items SET ".$query_parts." WHERE id = ?");
$userItemIDS = $this->helperClass->userItemIDS();
//var_dump($userItemIDS);
if( !in_array($item_id, $userItemIDS) )
{
return false;
}
if($q)
{
//var_dump($q);
var_dump($prep);
var_dump($values);
call_user_func_array( array($q, 'bind_param'), array_merge(array($prep), $values) );
$q->execute();
$a_r = $q->affected_rows;
$q->close();
return $a_r;
}
}