Я не очень уверен, как использовать mysqli внутри классов, поскольку я привык к процедурному программированию, но я понимаю, где ООП полезен. Поэтому я пытаюсь создать функцию обновления в своем классе с помощью mysqli, но, похоже, она не работает. Я также не могу понять, как заставить его отображать ошибки. Он просто говорит мне, что это:Ошибка Mysqli в классе
mysqli_error() ожидает параметр 1, чтобы быть MySQLi
Это объект:
$mysqli = new mysqli('localhost', 'root', '', 'ams');
$part = new Part($mysqli);
Вот мой класс:
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);
}
}
Он не будет запускать запрос и я вроде начинающего в этом ООП с php и mysql, поэтому любая помощь gr похвалил.
'mysqli_error ($ MySQLi)' (Примечание: '$ mysqli' - это просто имя. Но, похоже, это одно и то же). Вы уверены в этом вопросе? Не должно быть что-то вроде этого: '' UPDATE parts SET column_name = $ updateData WHERE PartID = $ partID "' – FirstOne
OMG Спасибо! как только я положил его туда, он произвел тонну чувственного смысла, а это не результат! –
И да, как только я изменил свой запрос, он работал нормально.Спасибо –