9

このmysql_拡張機能は現在のバージョンのPHPで非推奨になり、ある時点で削除されると言われています。

これの代わりに何をどのように使用すればよいですか?

ほぼすべてのクエリで使用しています。

例えば:

$result = mysql_query($query);

if (!$result) die ("Database access failed: " . mysql_error());

$rows = mysql_num_rows($result);
4

6 に答える 6

8

PHPマニュアルによると、次のいずれかを使用する必要があります。

ただし、明確にするために、これらはどちらも単なる代替ではありませんmysql_num_rows()。の代わりにMySQLiまたはPDOAPIを使用するには、最終的にコードを完全に書き直す必要がありますmysql_*()

于 2013-03-08T12:21:57.287 に答える
1

データベース抽象化ライブラリの概念を理解している場合は、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);

2つの重要なことに注意してください。

  • $data変数にすでに格納されている要求されたデータ。
  • すべての動的クエリ部分(つまり、挿入された変数)は、プレースホルダーを介して挿入する必要があります
于 2013-03-08T12:40:00.437 に答える
1

個人的には、MySQLImproved拡張機能を使用しています。

手続き的な方法で使用することを選択した場合は、現在古い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);

ただし、オブジェクト指向の方法でMySQLImprovedを使用しています。

詳細については、http ://www.php.net/manual/en/book.mysqli.phpを参照してください。

于 2013-03-08T12:33:00.430 に答える
0

php.net/mysql_num_rowsマニュアル経由

mysql_num_rows

この拡張機能はPHP5.5.0で非推奨になり、将来削除される予定です。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。詳細については、MySQL:APIガイドの選択および関連するFAQも参照してください。この機能の代替手段は次のとおりです。

于 2013-03-08T12:22:18.737 に答える
0

前述の公式のmysql_num_rows関数の説明と同様に、代わりにMysqliまたはPDO_MYSQLを使用できます。

于 2013-03-08T12:23:32.507 に答える
0

新しいコードではmysql_*関数を使用しないでください。

それらはもはや維持されておらず、公式に非推奨になっています。赤いボックスが表示されますか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを決定するのに役立ちます。

PDOを選択した場合、ここに良いチュートリアルがあります

于 2013-03-08T12:23:40.493 に答える