-1

Catalogonline というデータベースから情報を選択し、Html ページに表示したいのですが、php コードでこのエラーが表示されるようになりました。

警告: mysqli_select_db() は、14 行目の C:\wamp\www\insert12.php で指定された、正確に 2 つのパラメーターを想定しています。

警告: mysqli_query() は、パラメーター 1 が mysqli であると想定します。これは、15 行目の C:\wamp\www\insert12.php で指定された文字列です。

警告: mysqli_error() は、C:\wamp\www\insert12.php の 18 行目に 0 が指定された、正確に 1 つのパラメーターを想定しています データを取得できませんでした:

私のコードは

<?php
$dbhost = 'localhost';
$dbuser = 'Florin';
$dbpass = '######';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysqli_error());
}
$sql = 'SELECT id, Username, 
               Signup_Date, E-mail
        FROM membri';

mysqli_select_db('catalogonline');
$retval = mysqli_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysqli_error());
}
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
    echo "Tutorial ID :{$row['id']}  <br> ".
         "Title: {$row['Username']} <br> ".
         "Author: {$row['Signup_Date']} <br> ".
         "Submission Date : {$row['E-mail']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysqli_close($conn);
?>    
4

2 に答える 2

2

mysql_select_db は 2 つのパラメーターを想定していますが、1 つしか渡していません。

正しい使い方は次のとおりです。

mysqli_select_db(connection,dbname);

に変更してみてください

mysqli_select_db($conn,'catalogonline');

mysqli_query( $sql, $conn ); で

次のように変更してみてください:

mysqli_query( $conn, $sql );

mysqli_error(); で

次のように変更してみてください:

mysqli_error($conn);

mysqli コマンドを使用している場合、接続オブジェクト (この場合は $conn) を渡す必要があるため、これらの問題が発生しています。これにより、コマンドを実行する接続を識別できるようになります。

于 2015-03-14T13:02:18.730 に答える
2

コードにはいくつか問題があります。これは遅い回答であり、実際に何が起こっているかを示す以下を提出しています。

mysqli_select_db('catalogonline');- DB 接続を最初のパラメーターとして渡す必要があります。

mysqli_select_db($conn, 'catalogonline');

または、4 つのパラメーターすべてをすぐに使用します。

$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $db);

次に、クエリ内のこれらのパラメーターの変数mysqli_query( $sql, $conn )が逆になります。

つながりが先mysqli_query( $conn, $sql )

MYSQL_ASSOCMYSQLI_ASSOCを追加する必要がありますImysql_一緒にmysqli_機能することはできません。

mysqli_error()接続を渡す必要がありますmysqli_error($conn)

string mysqli_error ( mysqli $link )

次に、クエリで、E-mail列。MySQL はそれを「Eマイナスメール」と解釈し、計算を実行したいと考えています。目盛りで囲むか、アンダースコアを使用するE_mailか、1 つの単語で名前を変更する必要がありますEmail

<?php
$dbhost = 'localhost';
$dbuser = 'Florin';
$dbpass = 'atestat';
$db = 'catalogonline';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $db);
if(! $conn )
{
  die('Could not connect: ' . mysqli_error($conn));
}
$sql = 'SELECT id, Username, 
               Signup_Date, `E-mail`
        FROM membri';

$retval = mysqli_query( $conn, $sql  );
if(! $retval )
{
  die('Could not get data: ' . mysqli_error($conn));
}
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
    echo "Tutorial ID :{$row['id']}  <br> ".
         "Title: {$row['Username']} <br> ".
         "Author: {$row['Signup_Date']} <br> ".
         "Submission Date : {$row['E-mail']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysqli_close($conn);
?>
于 2015-03-14T13:19:57.353 に答える