[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запросы через MySQLi
Страницы: 1, 2
Astin
$stmt это взято из мануала. Вот пример про affected_rows из мануала
Объектно-ориентированный стиль
/* создание временной таблицы */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовленное выражение */
if ($stmt = $mysqli->prepare($query)) {

/* привязка переменной к метке */
$code = 'A%';
$stmt->bind_param("s", $code);

/* выполнение выражения */
$stmt->execute();

printf("rows inserted: %d\n", $stmt->affected_rows);

/* закрытие подготовленного выражения */
$stmt->close();
}

/* закрытие соединения */
$mysqli->close();

Вот отсюда и взята эта $stmt
twin
Да я про то, что в процедурном интерфейсе mysqli_stmt вообще не используется вне драйвера. Там используется только ссылка на объект, которая передается в процедурные функции. Собственно они являются обертками над объектным интерфейсом. Сделано это для обратной совместимости.

Ты взял мой класс, который ориентирован на процедурный интерфейс, и пытаешься извлечь из него объектный. Другими словами рвешь гланды через попу.

Если хочешь юзать prepare и иже с ними, выкинь его и не мучайся.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Astin
Цитата
Ты взял мой класс, который ориентирован на процедурный интерфейс, и пытаешься извлечь из него объектный. Другими словами рвешь гланды через попу.

И что плохого в том что я буду использовать ваш класс для написания
запросов в Объектно-ориентированный стиле. Или же тогда что, используя ваш класс
лучше писать запросы в процедурном стиле?

То есть вместо
if (isset($_POST['editin'])) //Если нажата кнопка
{

$res = DB::Query("INSERT INTO `".$tabl."` (id, title, entitl, descrip, keywor)
SELECT `id`, `title`, `entitl`, `descrip`, `keywor` FROM `a_meta`
ON DUPLICATE KEY UPDATE `"
.$tabl."`.`id` = `a_meta`.`id`");

if (DB::$mysqli->affected_rows > 0)
{
echo 'Изменено '.DB::$mysqli->affected_rows.' записей';

} else {

echo 'Записи НЕ изменены';
}

DB::$mysqli->close();
}

Лучше написать вот так
if (isset($_POST['editin'])) //Если нажата кнопка
{

DB::Query("INSERT INTO `".$tabl."` (id, title, entitl, descrip, keywor)
SELECT `id`, `title`, `entitl`, `descrip`, `keywor` FROM `a_meta`
ON DUPLICATE KEY UPDATE `"
.$tabl."`.`id` = `a_meta`.`id`");

if (mysqli_stmt_affected_rows(DB::$mysqli) > 0)
{
echo 'Изменено '.mysqli_stmt_affected_rows(DB::$mysqli).' записей';

} else {

echo 'Записи НЕ изменены';
}

mysqli_close(DB::$mysqli);
}

Но когда я использую процедурный стиль
mysqli_stmt_affected_rows(DB::$mysqli);

то он его не видит. Версия PHP 5.3. Может то из за версии PHP.

Но когда я использую
DB::$mysqli->affected_rows

то он видит affected_rows
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.