-1

我想从名为 Catalogonline 的数据库中选择一些信息并将其显示在 Html 页面上。但现在我的 php 代码显示此错误

警告:mysqli_select_db() 需要 2 个参数,1 个在 C:\wamp\www\insert12.php 第 14 行给出

警告:mysqli_query() 期望参数 1 为 mysqli,字符串在第 15 行的 C:\wamp\www\insert12.php 中给出

警告:mysqli_error() 需要 1 个参数,0 在第 18 行的 C:\wamp\www\insert12.php 中给出 无法获取数据:

我的代码是

<?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 需要两个参数,但你只传递了一个。

正确的用法是:

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');- 它需要将数据库连接作为第一个参数传递。

mysqli_select_db($conn, 'catalogonline');

或者直接使用所有四个参数:

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

然后将查询中的这些参数的变量mysqli_query( $sql, $conn )反转。

连接是第一位的mysqli_query( $conn, $sql )

MYSQL_ASSOC这需要MYSQLI_ASSOC与添加的I. 您不能将mysql_mysqli_功能混合在一起。

mysqli_error()需要通过连接mysqli_error($conn)

string mysqli_error ( mysqli $link )

然后在您的查询中,E-mail列。MySQL 将其解释为“E邮件”,认为您希望它进行数学运算。它应该包含在刻度中,或者使用下划线E_mail或一个单词将其重命名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 回答