Нужна помощь в преобразовании MySQL в MySQLI в моем сценарии PHP? - PullRequest
0 голосов
/ 02 декабря 2009

Мне нужна помощь в преобразовании моего скрипта из 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 голосов
/ 02 декабря 2009

Прошло много времени с тех пор, как я сделал преобразование mysql-> mysqli (например, 2 или 3 года), но в IIRC есть некоторые функции, для которых вам также нужно изменить порядок параметров. Разве это не мило?

0 голосов
/ 02 декабря 2009

Если вы собираетесь преодолеть трудности, я бы порекомендовал вам вместо этого рассмотреть PDO .

0 голосов
/ 02 декабря 2009

Все дело в изменении mysql на mysqli.

Например, вы могли бы позвонить mysqli_query так же, как вы делаете mysql_query здесь.

Когда вы вызываете эти функции, вам нужно передать ссылку на базу данных в качестве первого параметра.

См. Ссылку на функцию mysqli здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...