Php 从数据库错误中选择

Php 从数据库错误中选择,php,mysql,select,mysqli,info,Php,Mysql,Select,Mysqli,Info,我想从名为Catalogonline的数据库中选择一些信息,并将其显示在Html页面上 警告:mysqli_select_db()需要两个参数,其中一个参数在 第14行的C:\wamp\www\insert12.php 及 警告:mysqli_query()要求参数1为mysqli,字符串为给定值 在第15行的C:\wamp\www\insert12.php中 及 警告:mysqli_error()只需要1个参数,0在中给定 第18行的C:\wamp\www\insert12.php无法获取数据

我想从名为Catalogonline的数据库中选择一些信息,并将其显示在Html页面上

警告:mysqli_select_db()需要两个参数,其中一个参数在 第14行的C:\wamp\www\insert12.php

警告: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);
?>    

mysql\u select\u db需要两个参数,但您只传递了一个

正确的用法是:

mysqli_select_db(connection,dbname);
试着换成

mysqli_select_db($conn,'catalogonline');
在 mysqli_查询($sql,$conn)

尝试更改为:

mysqli_query( $conn, $sql );
mysqli_error($conn);
在 mysqli_错误()

尝试更改为:

mysqli_query( $conn, $sql );
mysqli_error($conn);

这些问题正在发生,因为当您使用mysqli命令时,您必须传递连接对象(在您的例子中是$conn),这样它将能够识别您将在哪个连接中执行命令。

您的代码有一些问题。这是一个迟来的答复,我提交以下内容,说明实际发生的情况

mysqli_select_db('catalongline')-需要将DB连接作为第一个参数传递

mysqli_select_db($conn,'catalogonline')

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

$conn=mysqli\u connect($dbhost、$dbuser、$dbpass、$db)

然后,查询
mysqli\u查询($sql,$conn)
中这些参数的变量被反转

首先是连接
mysqli\u查询($conn,$sql)

MYSQL\u ASSOC
需要添加
I
MYSQLI\u ASSOC
。您不能将
mysql\u
mysqli\u
函数混合在一起

mysqli\u error()
要求传递连接
mysqli\u error($conn)

字符串mysqli\u错误(mysqli$link)

然后在您的查询中,
E-mail
列。MySQL将其解释为“E减去邮件”,认为您希望它做数学运算。它应该用记号包装,或者用下划线
电子邮件
或者用一个单词
电子邮件
重命名

<?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);
?>

只要查看一下这些命令的文档,就会发现问题所在:您使用的是过程式风格。因此,第一个参数必须是连接对象;你可以接受任何你想要的答案。然而,你最初接受的答案并没有完全概括出所有的错误,对我来说,它不适合作为这个问题的最佳或最完整的答案。比如,
MYSQL\u ASSOC
缺少
I
mysqli\u error()
需要传递数据库连接。然后是关于列名的事实。为什么您不能使用这个名称,MySQL如何将减号解释为?啊!!错误1已消失,但其他两个?抱歉,我更改了答案并添加了其他两个出现问题的情况,因为当您使用mysqli命令时,必须传递连接对象(在您的示例中为$conn),以便它能够识别您将在哪个连接中执行命令。它起作用了,现在我有一个错误,无法获取数据:Champ'E'inconu dans字段列表“我的答案不被接受?我记得,我是第一个回答和帮助的人。”-因为,您没有“解释”他们的列名失败的原因,包括函数的其他方面。在那里,OP重新接受了你的答案;现在快乐吗?另外,仅仅因为你的答案被放在“第一”,并不总是意味着它是与问题整体一致的最佳答案。OP可以选择最好、更完整的答案。