php - 使用 PHP 从 MySQL 获取信息时遇到问题

标签 php mysql database

我已经尝试了几个小时,但没有任何运气。我在网上找到的每个教程都提供了使用 PHP 连接 MySQL 数据库的不同方法,因此很难找到一致性。

当我运行以下代码时,我尝试检索的值得到“0”。我怎样才能得到这些值?到目前为止我有以下代码:

<?php 
        //Connect to MySQL server
        $conn = mysql_connect('XXIP ADDRESSXX', 'XXUSERNAMEXX', 'XXPASSWORDXX') or die(mysql_error()); //Connect to mysql

        //Continue if connection successful
        if($conn != null) {
            $db_selected = mysql_select_db('itemdata', $conn) or die(mysql_error()); //Connect to database using the connection

            //Continue if selected database successfully
            if($db_selected == true) {
                //The statement used to query the database  
                $query = "SELECT * FROM item_prices";

                //Store the results of the query
                $result = mysql_query($query, $conn) or die(mysql_error()); //Retrieve all data from the table  

                //Convert to assoc array
                $values = mysql_fetch_assoc($result);

                $cost = $values['cost'];
                $retail = $values['retail'];
                $in_stock = $values['available'];

                                    echo("<p>$cost</p>");
                                    echo("<p>$retail</p>");
                                    echo("<p>$in_stock</p>");
            }
            else 
                echo "Unable to connect to database";
        }
        else
            echo "Unable to connect to MySQL Server";

        //Close database
        mysql_close($conn);
    ?>

现在提供一些进一步的信息:通过调试,我验证了代码到达了最里面的“if”语句,因此它可以正确连接并选择数据库。由于我尝试检索的 3 个变量仅收到“0”,因此没有抛出任何错误。 (我尝试立即打印以验证这不是变量范围的问题)。

任何帮助都会很棒,我从来没有编写过与 MySQL 的连接,而且我很难找到最好的方法(我找到了有关 mysqli、mysql、面向对象等的教程......而且没有一个是完整的(我还查看了用户手册)..

谢谢。

编辑:数据库的结构如下(到目前为止)

数据库名称:itemdata

表名称:item_prices

该表有 4 列:

  • itemID(主键)- 这是搜索的内容(int 类型)
  • 成本( float 类型)
  • 零售( float 类型)
  • 库存( bool 类型)

我正在尝试使用 itemID 检索表中的所有值

最终编辑 我从 PHPMyAdmin 复制了表格(这都是为了测试目的,所以数据都是废话)

itemID  cost    retail  instock
0   0   0   0
1   100 150 1
2   200 250 1
3   300 350 0
4   400 450 0
5   500 550 1
10  100 150 1
11  200 250 1
12  300 350 0
13  400 450 0
14  500 550 1

最佳答案

我稍微看了一下你的代码,我很确定(95%)这是有效的代码。如果它仍然不起作用,那么您可能做错了其他事情。

顺便说一句,当您使用 die() 时,您不需要回显错误消息,脚本将从那时起停止工作。

这是我的美化代码:

<?php 
//Connect to MySQL server
$conn = mysql_connect('XXIP ADDRESSXX', 'XXUSERNAMEXX', 'XXPASSWORDXX')
    or die('Unable to connect to MySQL Server');


// Select db
mysql_select_db('itemdata', $conn)
    or die('Unable to connect to database');

// Run the query and fetch the results
$query = "SELECT cost FROM item_prices WHERE itemID = 4";
$values = mysql_fetch_assoc(mysql_query($query));

// Echo everything
echo '<p>'.$values['cost'].'</p>';
echo '<p>'.$values['retail'].'</p>';
echo '<p>'.$values['available'].'</p>';

// Close the connection
mysql_close($conn);
?>

关于php - 使用 PHP 从 MySQL 获取信息时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892835/

相关文章:

php - 从 mysql 中的日期选择年份时的零值

php - 通过网站运行查询

php - 将 WooCommerce 产品简短描述限制为仅文本(禁用tinymce 编辑器)

php - 使用 PHP 的人类可读日期

php - 如何检查数据是否已成功插入?

java - MySQL语法异常,手动工作

mysql - SQL 中的日期范围

php - 使用whereHas Eloquent 关系查询

php - Laravel:laravel 可翻译插件

sql - 如果没有使用 try/catch 或异常逻辑来回滚,那么在事务中包装存储过程是否有意义?