Мне сказали, что расширение mysql_
теперь устарело в текущей версии PHP и в какой-то момент будет удалено.
Что я должен использовать вместо этого и как?
Почти для всех моих запросов я использую его.
Например:
$result = mysql_query($query); if (!$result) die ("Database access failed: " . mysql_error()); $rows = mysql_num_rows($result);
Согласно Руководству по PHP
, вы должны использовать любое из следующего:
Однако, чтобы быть ясным, ни одна из них не является простой заменой для mysql_num_rows()
. В конечном итоге ваш код должен быть полностью переписан для использования MySQLi или PDO API вместо mysql_*()
.
Лично я теперь использую расширение MySQL Improved .
Если вы решите использовать его процедурным способом, его можно использовать очень похоже на то, как вы в настоящее время используете старое расширение MySQL.
Пример (MySQL):
$result = mysql_query($query); if (!$result) die ("Database access failed: " . mysql_error()); $rows = mysql_num_rows($result);
Пример (улучшен MySQL):
$result = mysqli_query($query); if (!$result) die ("Database access failed: " . mysqli_error()); $rows = mysqli_num_rows($result);
Тем не менее, я использую MySQL Improved в объектно-ориентированном виде.
Более подробную информацию можно найти здесь: http://www.php.net/manual/en/book.mysqli.php
Если вы понимаете идею библиотек абстракции базы данных, используйте safemysql
$data = $db->getAll($query,$param1,$param2); $rows = count($data);
Если использование исходных функций API более знакомо вам, используйте PDO
$stm = $pdo->prepare($query); $stm->execute(array($param1,$param2)); $data = $stm->fetchAll(); $rows = count($data);
-$stm = $pdo->prepare($query); $stm->execute(array($param1,$param2)); $data = $stm->fetchAll(); $rows = count($data);
Обратите внимание: 2 важные вещи:
Руководство по php.net/mysql_num_rows
mysql_num_rows
Это расширение устарело с PHP 5.5.0 и будет удалено в будущем. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. См. Также MySQL: выбирая руководство по API и связанные с ним FAQ для получения дополнительной информации. Альтернативы этой функции включают:
mysqli_stmt_num_rows()
PDOStatement::rowCount()
Как упоминалось выше в описании функции mysql_num_rows, вы можете использовать Mysqli или PDO_MYSQL в качестве альтернативы.
не используйте функции mysql_ * в новом коде.
Они больше не поддерживаются и официально устарели . См. Красную рамку ? Узнайте о подготовленных инструкциях и используйте PDO или MySQLi. Эта статья поможет вам решить, какой из них.
Если вы выберете PDO, вот хороший учебник