首页 > 解决方案 > 我的 php 不能正常工作,我可以找到问题

问题描述

我希望它从我的数据库中获取值并回显到网页,但它回显没有找到任何结果。

我的代码:

//Variables
$Host = 'localhost';
$UserName = 'root';
$Password = 'NOP';
$DataBaseName = 'BoosTemplatesDB';
$DEBUG = True;

$link = mysqli_connect($Host, $UserName, $Password, $DataBaseName);
$query_items = 'SELECT * FROM Products WHERE ID = 6';
$result      = $link->query($query_items);

if (mysqli_num_rows($result) > 0) {
    // Fetch one and one row
    while ($row = $result->fetch_assoc()) {
        echo $row[1];
    }
} else {
    echo 'No result found';
}

我的数据库: 在此处输入图像描述

标签: phpmysql

解决方案


您混合了程序风格和面向对象的风格。

你正在$link->query($query_items);使用面向对象的类。在这里,mysqli_num_rows($result)您正在使用程序样式对其进行验证。

尝试使用

$link = mysqli_connect($Host, $UserName, $Password, $DataBaseName);
$query_items = 'SELECT * FROM Products WHERE ID = 6';
$result      = $link->query($query_items);

if ($result->num_rows > 0) {
    // Fetch one and one row
    while ($row = $result->fetch_assoc()) {
        echo $row[1];
    }
} else {
    echo 'No result found';
    echo $link->error; // show last error.
}

编辑:添加 $link->error; 查看最后一个错误以进行调试。

希望能帮助到你。

正如 Qirel 所说,您可以从文档PHP 手册参考中混合过程和面向对象

混合风格

可以随时在样式之间切换。出于代码清晰和编码风格的原因,不建议混合使用这两种风格。


推荐阅读