【问题标题】:Converting my deprecated mysql to mysqli将我已弃用的​​ mysql 转换为 mysqli
【发布时间】:2014-08-24 05:21:39
【问题描述】:

我是这里的初学者,我需要学习从mysql 转换为mysqli 的基础知识。我想先从配置开始。我已经使用了这个 connect.php,它现在正在工作我想切换到不推荐使用的 mysqli。请告诉我如何修改这个脚本。

<?php
$host = "localhost";
$dbusername = "root";
$dbpassword = "nopassword";
$dbname = "student";

$link_id = mysql_connect($host, $dbusername, $dbpassword);
if(!$link_id){
    die(mysql_error("Can`t Connect To database")); 
}
else{
    $db = mysql_select_db($dbname, $link_id);
}     
if(!$db){
    die(mysql_error("Can`t select database")); 
}     
return;

?>

【问题讨论】:

  • 请说明您已经尝试过的和无效的。
  • 首先,改变你的标题......将a转换为a与将a转换为b不同。第二件事是,使用谷歌搜索一些教程。其实你甚至不需要教程。它是一个简单的连接。
  • &lt;?php define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', 'nopassword'); define('DB_DATABASE', 'student'); $link_id = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE); ?&gt; _this 到目前为止我已经修改过,但我不知道如何修改 if_else 语句。

标签: php mysql mysqli


【解决方案1】:

根据我的评论......

你可以这样做

$host       = "localhost";
$dbusername = "root";
$dbpassword = "nopassword";
$dbname     = "student";

$link = mysqli_connect($host,$dbusername,$dbpassword,$dbname) or die("Error " . mysqli_error($link)); 

$query   = "SELECT knowhow FROM google WHERE myknowhow='leaks'";
$knowhow = mysqli_query($link, $query); 

这只是您可以做到的最简单的方法。

但你应该这样使用它(OOP)

$db      = new mysqli($host,$dbusername,$dbpassword,$dbname);
$knowhow = $db->query("SELECT knowhow FROM google WHERE myknowhow='leaks'");

根据您的评论:

您不再需要 IF/ELSE 语句。

捕获所有错误
die("Error " . mysqli_error($link));

在oop中,错误被捕获

... new mysqli($host,$dbusername,$dbpassword,$dbname);

编辑

由于您被阻止提出新问题,因此请更新此答案:

$link    = mysqli_connect($host,$dbusername,$dbpassword,$dbname) or die("Error " . mysqli_error($link)); 
$query   = "SELECT * FROM student_information where student_id='{$_SESSION['user_id']}'";
$knowhow = mysqli_query($link, $query);

$data    = mysqli_fetch_array($result);     
$numRows = mysqli_num_rows($result); 

$i = 0;     
while($i < $numRows){
    echo $data[$i++] . "<br />";
}

// I would not use a while in this case. I would prefere a foreach
// just to prevent from using a endless loop and 1 row less code :)

foreach($data as $d){
    echo $d . "<br />";
}

请使用 MySqli 作为类,如 $db = new Mysqli();

【讨论】:

  • 哇,这是我收到的最好的工作线索。非常感谢,它确实有效,当然我选择了你建议的最简单的方法(不是 OOP)。但似乎我在其他页面遇到了一个新问题。我再次需要您的帮助才能将其转换为 my_sqli include_once 'Connect.php'; $result = mysql_query("SELECT * FROM student_information where student_id='{$_SESSION['user_id']}'",$link_id); $data = mysql_fetch_array($result); $numRows = mysql_numrows($result); $i = 0; while($i &lt; $numRows){ 另一个请 :-)
  • 接受这个答案,可以投票并为此提出一个新问题。
  • 感谢您的提醒。为我在堆栈溢出中仍然是新的道歉。我已经接受了,但由于声誉问题,我现在还不能投票。如果我仍然被允许提问 s.o
  • 您将始终被允许提问。这不是一个问题,只是因为你必须在 SOF 中积累经验才能做到这一点。 :)
  • 我现在被禁止提出新问题。 :-(
猜你喜欢
  • 2015-02-19
  • 1970-01-01
  • 2018-02-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多