【问题标题】:Simplest MySQL to MySQLi transition最简单的 MySQL 到 MySQLi 转换
【发布时间】:2013-09-13 09:28:57
【问题描述】:

我目前正在使用我在课堂上教过的折旧的 MySQL。我发现这不是正确的方法,有两个更好的选择:MySQLi,甚至更好的是 PDO。虽然我发现切换到 PDO 对我来说有点困难,因为我对 OOP 一无所知,但我认为至少切换到 MySQLi 是必须的。我在这个问题之前检查了 SO 和其他来源以获取有关过渡的信息,我尝试应用我学到的东西,但结果并不好,所以我将我当前的连接发布到数据库并等待 MySQLi这段代码的过渡。如果它带有解释就更好了,因为学习是我的目的,而不仅仅是使用代码。如果不是......我会尝试自己弄清楚,在我眼前有正确的代码,旧代码会告诉我有什么不同。

<?php
    define("DB_HOST", "localhost");
    define("DB_USER","root");
    define("DB_PASS", "");
    define("DB_DATABASE","spore_db");

    $connect = mysql_connect(DB_HOST,DB_USER,DB_PASS) or die(mysql_error());

    mysql_select_db(DB_DATABASE) or die(mysql_error());
?>

请在降级之前通知我,以便我编辑我的问题。谢谢!

【问题讨论】:

  • 多么好的问题:) +1
  • 您至少应该自己尝试一下,发布一些代码,如果您需要任何进一步的帮助,请回到这里。
  • 好的,这个例子中只有$connect = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_DATABASE) or die("Error " . mysqli_error($connect));
  • 我试过了,但是我遇到了一个又一个的问题,而不是在这里发布它们以便你可以一个一个地修复它们,而我不知道会发生什么,因为什么,我选择了有帮助的道路不仅是我,其他用户也看到了一个非常简单的 mysqli_connect 应该是什么样子。我会复制它,而不是复制粘贴它,这是一个承诺。我建议其他人也这样做。
  • 您在我的第一条评论中将数据库指定为第四个参数,不需要第 9 行。阅读此php.net/manual/en/function.mysqli-connect.php

标签: php mysql mysqli


【解决方案1】:
  1. 无论如何这都不是一个好问题。 堆栈溢出根本不是寻求教程的地方。
  2. 您不必寻求教程,而是必须在 Google 上搜索一个,然后尝试,然后针对您遇到的特定问题提出问题。
  3. 机械地用 mysqli_ 替换 mysql_ 函数绝对没有意义
  4. 你真正需要的是在应用程序代码中摆脱调用 RAW API 函数,无论是 mysqli 还是 mysql。并开始使用某种抽象库。特别是因为使用原始 mysqli 是一种糟糕的体验
  5. PDO 比 mysqli 更好,只是因为它本身就是这样一个库。
  6. OOP 在使用方面并没有那么可怕。没有人要求您编写自己的 OOP 代码,而调用现有的 OOP 方法并不比调用熟悉的函数复杂。唯一不同的是-&gt;东西:

    $result = function($data);
    $result = $class->function($data);
    

    这是所有您需要了解 OOP 才能使用它(除了变量范围问题)

To try PDO out 并没有你想象的那么复杂。你总有一天要开始学习编程 - 所以,最好早点开始。

【讨论】:

  • 我知道 SO 不是一个教程网站,但是每个人似乎都在说“不要使用 MySQL,而是使用 MySQLi 或 PDO”并指出不同的问题,这些问题并没有帮助我做得很好教程。如果 SO 不是一个教程网站,它是什么?一个“解决我的问题,因为我忘记了逗号,我得到了这个错误”网站?我认为通过这个问题,你可以帮助很多人从 MySQL 切换到 MySQLi,如果我找到完整的解决方案,我会自己发布答案,以便我可以帮助他们。如果你知道的话,交出几行绝不复杂的代码不会伤害我。
  • 不要误会我的意思,我不会把它当成个人。我只是指出我的观点,同时发现您的帖子对 PDO 部分很有帮助。
  • 不幸的是,关于这个话题已经有一千个问题了。如果你找不到——那是你的错。
  • 老实说,您对 mysql_select_db IS 的问题是被遗忘的逗号。而您的要求就像“我不想阅读任何手册页 - 所以,请在此处给我写一份”
  • 并非如此。我的要求是:我想学习,我会去看手册,但是有一个完整的工作脚本在我面前对我很有帮助。正如我所说,我不需要脚本只是为了使用它,如果是这种情况(不是在 SO 上),我可以请一位经验丰富的 Web 开发人员为我写一个,并且他不会对他的 2 分钟如此生气用来帮忙的。我在这里问的原因是我认为我也在帮助别人,而不仅仅是我自己。请记住,每个人都有自己的学习节奏和方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多