如何检查mysqli连接是否正常工作?

7

我是php的新手,正在尝试创建自己的php购物车。经过一些研究后,我陷入了下面的“商品函数”中,因为它似乎没有正常工作。我希望在我的mysql数据库中看到我的产品名称,但什么也没有显示出来。我的用户名是noivaemd_etalhes,我使用了正确的密码,我的数据库名称是noivaemd_cart,我在这个数据库中创建了一个名为Products的表格,并列出了可用的产品列表。有人能帮我找出我在下面的php指令中做错了什么吗?谢谢任何帮助。

<?php 

session_start();
$page = 'index.php';

function products()  {
        $con = mysqli_connect("localhost", "noivaemd_etalhes", "mypassword", "noivaemd_cart") or die (mysqli_error());
        $res = mysqli_query($con, "SELECT id, name, description, price FROM Products WHERE quantity > 0 ORDER BY id DESC");
        if (mysqli_num_rows($res)==0) {
        echo "<font family=verdana><font size=6px><font color= #90882C><font style=normal><font variant= normal><br>No products available<br></font>";
            }
        else{
        while($get_row = mysqli_fetch_assoc($res)) {
                echo '<p>'.$res['name'].'</p>';
        }
    }
}

?>

1
$res['name'] 而不是 $get_row['name']? - Don't Panic
2个回答

8

这段代码:

while ($get_row = mysqli_fetch_assoc($res)) {
    echo '<p>'.$res['name'].'</p>';
}

Should be:

while ($get_row = mysqli_fetch_assoc($res)) {
    echo '<p>'.$get_row ['name'].'</p>';
}

根据您的标题要求,还要告诉如何检查mysqli数据库连接是否成功,您可以使用以下代码:

$con = mysqli_connect("localhost","my_user","my_password","my_db");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

参考链接: http://www.php.net/manual/en/function.mysqli-connect.php

mysqli_connect() 函数用于打开与 MySQL 数据库的连接。这个函数需要四个参数:主机名、用户名、密码和可选的数据库名称。
下面是一些实际的使用示例:
连接到本地主机上的数据库: $mysqli = mysqli_connect("localhost", "my_user", "my_password", "my_db");
连接到远程主机上的数据库: $mysqli = mysqli_connect("example.com", "my_user", "my_password", "my_db");
如果连接失败,则返回 false。

你明白了。更正后一切都很好。谢谢你的帮助。我花了很多时间试图找出问题所在,而你却轻易地找到了。我应该早点问你的。干得好! - Roberto Santos Filho

0

在编程中,直接在代码中连接数据库并不是一个好的实践。打开另一个文件,并将其保存为'dbconnect.php'或您选择的其他名称。将其保存在相同的根目录下。

在DB connect文件中,您可以像这样连接到数据库:

<?php
$mysql_host = "localhost"; 
$mysql_user = "username"; 
$mysql_pass = ""; 
$mysql_dbname = "Products"; 
$conn_error = "Sorry, Could Not Connect"; 

if(!@mysql_connect($mysql_host,$mysql_user,$mysql_pass)||!@mysql_select_db($mysql_dbname)){
    die($conn_error); 
}
?>

在你的index.php文件中,在php标签内编写'require "dbconnect.php";'。
然后你可以这样获得你的值:
$InfoQuery = " SELECT id, product, name FROM table_name WHERE quantity>0 ORDER BY id DESC"; 
    $Info = mysql_query($InfoQuery); 
    while($InfoRow=mysql_fetch_assoc($Info)){echo "<p>".$InfoRow['id']."<br>". $InfoRow['product']"."<br>". $InfoRow['name']."</p>";}

编辑:你的错误在于 while 循环中,你从 $res 中获取表格数据,而应该从 $get_row 中获取。


@符号(stfu 运算符)并不是必需的。 - mickmackusa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接