在我的PHP脚本中需要帮助将MySQL转换为MySQLI吗?

时间:2009-12-02 18:23:41

标签: php mysql

我需要一些帮助才能将我的脚本从使用mysql转换为mysqli我一直在努力做到这一点并不断收到错误我已经阅读了有关如何执行此操作的文章,但仍然可以使其工作。

以下是原始工作脚本。

<?php

require_once ('./mysqli_connect.php'); // Connect to the db.

if (isset($_POST['submitted'])) {

if ($dbc = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)) { // Make the connnection.

    if (!mysql_select_db (DB_NAME)) { // If it can't select the database.

        // Handle the error.
        trigger_error("Could not select the database!\n<br />MySQL Error: " . mysql_error());
        exit();

    } // End of mysql_select_db IF.

} else { // If it couldn't connect to MySQL.

    // Print a message to the user, include the footer, and kill the script.
    trigger_error("Could not connect to MySQL!\n<br />MySQL Error: " . mysql_error());
    exit();

} // End of $dbc IF.

// grab the tag
$tag = mysql_real_escape_string($_POST['tag']);

// see if the tag already exists and potentially what the current count is
$query = "SELECT id, count, page FROM tags WHERE tag='$tag'";
$result = mysql_query($query);

//--if there is a row, that means the tag exists
if(mysql_num_rows($result))
{
//--pull out the tag ID and the current count and increment by one.
  $tag_info = mysql_fetch_array($result);
  $tag_info_id = $tag_info["id"];
  $tag_info_count = $tag_info["count"] + 1;

//--update the table with the new count
  $sql_update_cnt = "UPDATE tags SET count='$tag_info_count' 
                            WHERE id='$tag_info_id'";
  mysql_query($sql_update_cnt);

  echo "$tag now with $tag_info_count instances";
}
else
{
// tag is not there, so insert a new instance
  $query = "INSERT INTO tags (tag, count) VALUES ('$tag', 1)";
if (!mysql_query($query, $dbc))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
}
mysql_close($dbc);
}
?> 

以下是我不断遇到的错误。

Warning: mysqli_select_db() expects exactly 2 parameters, 1 given on line 13

Warning: mysqli_error() expects exactly 1 parameter, 0 given on line 16

3 个答案:

答案 0 :(得分:0)

mysql更改为mysqli即可。

例如,您可以像mysqli_query一样致电mysql_query

调用这些函数时,需要将数据库引用作为第一个参数传递。

请参阅mysqli函数参考here

答案 1 :(得分:0)

自从我完成了mysql-&gt; mysqli转换(比如2年或3年)以来已经有一段时间了,但是IIRC还有一些功能,您还必须反转参数顺序。那不可爱吗?

答案 2 :(得分:0)

如果您想解决这个问题,我建议您考虑使用PDO