【问题标题】:Please help me convert my MySQL to MySQLi [duplicate]请帮我将我的 MySQL 转换为 MySQLi [重复]
【发布时间】:2015-09-16 13:52:41
【问题描述】:

是否有人向我解释并协助将我的旧代码转换为新的 MySQLi 格式?我将不胜感激。

这是我当前的代码:

<html>
    <head>
        <title>Last 10 Results</title>
    </head>
    <body>
        <table>
        <thead>
            <tr>
                <td>Id</td>
                <td>Name</td>
            </tr>
        </thead>
        <tbody>
        <?php
            $connect = mysql_connect("localhost","root", "root");
            if (!$connect) {
                die(mysql_error());
            }
            mysql_select_db("apploymentdevs");
            $results = mysql_query("SELECT * FROM demo LIMIT 10 ORDER BY Id");
            while($row = mysql_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['Id']?></td>
                    <td><?php echo $row['Name']?></td>
                </tr>

            <?php
            }
            ?>
            </tbody>
            </table>
    </body>
</html>

再次感谢您的帮助。

这就是我所做的(我很抱歉我是个菜鸟)

                    <?php
                        // Database details
                        $dbhost = 'localhost';
                        $dbuser = '#';
                        $dbpass = '#';
                        $dbname = '#';
                        $db = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
                        if($db->connect_errno > 0){
                            die('Unable to connect to database [' . $db->connect_error . ']');
                        }
                        $results = mysqli_query("SELECT * FROM formdata LIMIT 10 ORDER BY id");
                        while($row = mysqli_fetch_array($results)) {
                        ?>
                            <tr>
                                <td><?php echo $row['ID']?></td>
                                <td><?php echo $row['FullName']?></td>
                                <td><?php echo $row['Mobile']?></td>
                                <td><?php echo $row['Email']?></td>
                                <td><?php echo $row['Province']?></td>
                            </tr>

                        <?php
                        }
                        ?>  

【问题讨论】:

  • 你没试过吗?
  • 我有,但我太羞于添加它
  • @Fred-ii- 我添加了我认为正确的内容,但请不要对我大喊大叫,我正在学习。
  • 下面有东西给你 ;-)
  • 致 YCS,远离地球,你在污染它。

标签: php mysql html mysqli


【解决方案1】:

更新这一行:

$results = mysqli_query("SELECT * FROM formdata LIMIT 10 ORDER BY id");

$results = mysqli_query($db, "SELECT * FROM formdata ORDER BY id LIMIT 10");

【讨论】:

  • 我有一种很好的感觉,谁对我们投了反对票。我们中间有一条“蛇”。
  • 建议: 1. 检查你的表名。 2. 在 PhpMyAdmin 中运行代码。 3. 将ORDER BY 语句放在LIMIT 语句之前。
  • @ErikThiart on line 650?
  • 只需将答案标记为已接受的答案即可。
  • @ErikThiart,如果连接没有作为持久连接打开,它将自动关闭。但是,如果您需要显式关闭它,可以通过调用:mysqli_close($db) 来实现。
【解决方案2】:

这里的问题是您没有将连接传递给您的查询

$results = mysqli_query($db, "SELECT 
                        ^^^^

阅读文档:

mysql_不同,它必须作为参数传递。

然后确保您的查询没有失败。


编辑:

脚注:

正如 NaijaProgrammer 在对 OP 的评论中发现的那样,LIMIT 在 ORDER BY 之后是我的完全疏忽。

“建议:1. 检查您的表名。2. 在 PhpMyAdmin 中运行代码。3. 将 ORDER BY 语句放在 LIMIT 语句之前。– NaijaProgrammer”

SELECT 参考:

手册中的示例:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

我想指出的是,您在这里使用小写字母表示“id”ORDER BY id,这对于 ORDER BY 来说不应该是问题。

但是,$row['ID']$row['id'] 之间存在差异。如果您的数据库配置为区分大小写,那么您需要将 ID 写入小写。

【讨论】:

  • 当有人说“我是个菜鸟”时,很多时候他们并没有完全掌握 PHP 官方手册,这可能是他们最初来到 SO 的原因。然后,他们通常更喜欢为他们完整编写的代码。我说的是经验。
  • @NaijaProgrammer 可以理解。我也曾经是新手,我不知道谷歌是为了什么。当然,我们是在多年前谈论的 ;-)
  • @NaijaProgrammer 我注意到你的回答被否决了 :( 那不是我,我可以向你保证。我什至也得到了一个。
  • @Fred-ii- 不用担心,投反对票表明至少有人阅读了我的帖子,我对此很满意。
  • @NaijaProgrammer 我喜欢你的风格 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 2015-02-19
  • 2012-05-18
  • 2015-09-25
相关资源
最近更新 更多