-1

関数内からデータベースに接続できません。次のエラーが表示されます。

「警告: mysqli::query() は、パラメーター 1 が文字列であると想定しています。オブジェクトは...で指定されます」

「グローバル」を使用しているので、何が間違っているのかわかりません。

-- ファイル: db.php --

$db = new mysqli($hostname, $sql_us, $sql_us_pwd, $sql_db); // Connects fine

-- ファイル: functions.php --

function db_query($query, $type = 'assoc') {

  global $db;
  $result = $db->query($query);

  if ($type == 'assoc') {
    $rows = $result->fetch_array(MYSQLI_ASSOC);
  } else { 
    $rows = $result->fetch_object();
  }

  return $rows;
  mysqli_free_result($result);

}

-- ファイル: somepage.php --

$query = "SELECT * FROM `users`";
$users = db_query($query);
4

2 に答える 2

-1

これはあなたを助けるかもしれません。

function db_query($query, $db, $type = 'assoc') {

  $result = $db->query($query);

  if ($type == 'assoc') {
    $rows = $result->fetch_array(MYSQLI_ASSOC);
  } else { 
    $rows = $result->fetch_object();
  }

  return $rows;
  mysqli_free_result($result);

}

$db = new mysqli($hostname, $sql_us, $sql_us_pwd, $sql_db); // Connects fine
$query = "SELECT * FROM `users`";
$users = db_query($query,$db);

$db 接続が関数に渡されないため、パラメーターが mysql のクエリ関数に渡されません。エラーが発生しています。

于 2013-07-29T14:38:23.127 に答える