Im not really sure how to use mysqli inside of classes as I'm used to procedural programming but I understand where OOP is beneficial. So I'm trying to create an update function in my class using mysqli but it does not seem to be working. I also cannot figure out how to get it to echo out errors. It just tells me this:
mysqli_error() expects parameter 1 to be mysqli
This is the object:
$mysqli = new mysqli('localhost', 'root', '', 'ams');
$part = new Part($mysqli);
Here is my class:
class Part {
protected $mysqli;
// Editable Part table titles
protected $editable = array('Desc', 'SDQty', 'IAQty', 'IsActive');
function __construct($mysqli) {
$this->mysqli = $mysqli;
}
function update($data = array(), $partID) {
$r_errors = 0;
// Data Arrays
$updateArray = array();
// Loop Though all the column titles
foreach ( $data as $column => $value ) {
// If the column value is set
if ( ( isset($column) && !empty($column) ) && ( isset($value) && !empty($value) ) ) {
// If the item to be updated is allowable from the allowable array || add it to the column array
if ( in_array($column, $this->editable) ) {
$updateArray[] = "$column = $value";
}
}
} // End of foreach loop
// Convert Data Arrays to strings
$updateData = implode(', ', $updateArray);
// Create the SQL string
$_query = "UPDATE parts WHERE PartID = $partID SET $updateData";
$result = $this->mysqli->query($_query);
if ( !$result ) {
echo mysqli_error($result);
}
}
It will not run the query and Im kind of a beginner at this OOP with php and mysql so any help is greatly appreciated.