【问题标题】:php & mysql database pull errorphp & mysql 数据库拉取错误
【发布时间】:2014-04-18 04:54:24
【问题描述】:

您好,我有一个网站,我正在使用 php 进行编码。我有一个附加的数据库。我试图让它从数据库中将数据读入页面。我将数据库分成几个表。我以为我已经正确完成了代码,但我不断收到以下错误代码:

警告:mysqli_query() 期望参数 1 为 mysqli,整数在第 13 行的 C:\xampp\htdocs\stadium\alpha\a.php 中给出

警告:mysqli_fetch_all() 期望参数 1 为 mysqli_result,在第 14 行的 C:\xampp\htdocs\stadium\alpha\a.php 中给出 null

注意:尝试在第 15 行获取 C:\xampp\htdocs\stadium\alpha\a.php 中非对象的属性

警告:mysqli_fetch_all() 期望参数 1 为 mysqli_result,在第 16 行的 C:\xampp\htdocs\stadium\alpha\a.php 中给出 null

我已经尝试对此进行研究一段时间了,但我无法对此做出正面或反面。我的数据拉取和显示代码如下:

$sql = "SELECT colConferenceName.tblConference, colSchoolName.tblSchool, colClass.tblSchool, colSurfaceName.tblSurface, colSurfaceCompany.tblSurface, colStadiumName.tblStadium, colAddress.tblStadium, colCity.tblStadium, colRegion.tblStadium, colCounty.tblStadium, colCapacity.tblStadium, colSurfaceYear.tblSurface FROM tblStadium, tblConference, tblSurface, tblSchool WHERE tblConference.colConferenceID = tblSchool.colConferenceID AND tblSurface.colSurfaceID = tblStadium.colSurfaceID AND tblStadium.colStadiumID = tblStadiumSchool.colStadiumID AND tblSchool.colSchoolID = tblStadiumSchool.colSchoolID AND colStadiumName LIKE 'A%' ORDER BY colSchoolName";
$schoolinfo = mysqli_query($conn,$sql);
mysqli_fetch_all($schoolinfo,MYSQLI_ASSOC);
while (!$schoolinfo->EOF){ //looping through the recordset (until End Of File) 
while ($row = mysqli_fetch_all($schoolinfo,MYSQLI_ASSOC)){
    echo '<p>School Name: ' . $row['colSchoolName'] . '</br>Conference: ' . $row['colConferenceName'] . '</br>Class: ' . $row['colClass'] . '</br>Stadium Name: ' . $row['colStadiumName'] . '</br>Address: ' . $row['colAddress'] . '</br>City: ' . $row['colCity'] . '</br>County: ' . $row['colCounty'] . '</br>Region: ' . $row['colRegion'] . '</br>Capacity: ' . $row['colCapacity'] . '</br>Surface Type: ' . $row['colSurfaceName'] . '</br>Surface Company: ' . $row['colSurfaceCompany'] . '</br>Year Installed: ' . $row['colSurfaceYear'] . '</p>';
        }
    }

你能为我提供的任何帮助都会很棒。提前致谢。

至于连接,它是在一个单独的连接文件中完成的。它拉取的方式是 $conn = require ('xxx_xxx.xxx');我原则上询问输出以及如何修复编码错误。我 xxx 断开连接,因为我不希望人们访问文件名。我还为此进行了大约 80 到 100 个连接,因此使用一个文件进行连接比必须编辑每个 php 文件的连接部分更有意义。另外,我发现这样可以提高安全性。

【问题讨论】:

  • 你在哪里设置你的$conn
  • $conn = mysqli_conect().....
  • ****connect**** mysqli_connect double n
  • 啊是的@CodeBird 它的连接不连接......我的错!
  • 还显示定义$conn的行

标签: php mysql html


【解决方案1】:

我没有看到您连接到 mysql 的时间点。试试mysqli_connect

$conn = mysqli_connect('<your-host>','<your-username>','<your-password>','<your-databasename>').

【讨论】:

  • 谢谢,但连接不是问题。出于显而易见的原因,我不想显示所有背景数据。
【解决方案2】:

需要先连接mysql服务器:

$con = mysqli_connect($host,$username,$password);

那么您需要选择您将使用的数据库: $db = mysqli_db_select($database);

您还必须设置正确的参数:$host、$username、$password 和 $database,并且必须首先配置您的 mysql 服务器以接受连接

好吧,你为什么不尝试一个 php 框架?

【讨论】:

    【解决方案3】:

    你可以试试这个:

    记得在脚本的开头设置你的数据库登录

    <?php
    
    /* connect*/
    $mysqli = new mysqli("localhost", "my_user", "my_password", "db_name");
    
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    /* your sql query */
    $query = "SELECT colConferenceName.tblConference, colSchoolName.tblSchool, ".
             "colClass.tblSchool, colSurfaceName.tblSurface, colSurfaceCompany.tblSurface, ".
             "colStadiumName.tblStadium, colAddress.tblStadium, colCity.tblStadium, ".
             "colRegion.tblStadium, colCounty.tblStadium, colCapacity.tblStadium, ".
             "colSurfaceYear.tblSurface FROM tblStadium, tblConference, tblSurface, tblSchool ".
             "WHERE tblConference.colConferenceID = tblSchool.colConferenceID AND ".
             "tblSurface.colSurfaceID = tblStadium.colSurfaceID AND ".
             "tblStadium.colStadiumID = tblStadiumSchool.colStadiumID AND ".
             "tblSchool.colSchoolID = tblStadiumSchool.colSchoolID AND ".
             "colStadiumName LIKE 'A%' ORDER BY colSchoolName";
    
    /* query your db */
    if ($result = $mysqli->query($query)) {
    
        /* fetch associative array */
        while ($row = $result->fetch_assoc())
        {
            /* display row */
            echo '<p>School Name: ' . 
            $row['colSchoolName'] . '</br>Conference: ' . 
            $row['colConferenceName'] . '</br>Class: ' . 
            $row['colClass'] . '</br>Stadium Name: ' . 
            $row['colStadiumName'] . '</br>Address: ' . 
            $row['colAddress'] . '</br>City: ' . 
            $row['colCity'] . '</br>County: ' . 
            $row['colCounty'] . '</br>Region: ' . 
            $row['colRegion'] . '</br>Capacity: ' . 
            $row['colCapacity'] . '</br>Surface Type: ' . 
            $row['colSurfaceName'] . '</br>Surface Company: ' . 
            $row['colSurfaceCompany'] . '</br>Year Installed: ' . 
            $row['colSurfaceYear'] . '</p>';
        }
    
        /* free result set */
        $result->free();
    }
    
    /* close connection */
    $mysqli->close();
    
    ?>
    

    【讨论】:

    • 好吧,我试过了,但它给了我错误,注意:未定义的变量:第 29 行 C:\xampp\htdocs\stadium\alpha\a.php 中的 mysqli 致命错误:调用成员在第 29 行的 C:\xampp\htdocs\stadium\alpha\a.php 中的非对象上的函数 query()。我应该提到我有一个单独的文件用于连接,因为我连接到数据库80 到 100 个单独的 php 页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多