2015-01-05 5 views
0

Я подключаюсь к базе данных MySQL, но продолжаю получать ошибки.Ошибка подключения PHP/MySQL

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\MAMP\htdocs\PHPbookpractise\index.php on line 16

У меня создать пользователя в базе данных под названием «petewali» Моя связь сценарий можно увидеть ниже - Что это сделать, вернуть ли это объект подключения какой-то?

<?php 
     function dbConnect($usertype, $connectionType = 'mysqli') { 
      $host = 'localhost'; 
      $db = 'mycmstwo'; // name of the database 
      if ($usertype == 'global') { // IS THIS ACCESS RIGHTS? 
      $user = 'petewali'; 
      $pwd = 'pass'; 

      } elseif ($usertype == 'write') { 
      $user = 'pswrite'; 
      $pwd = '[email protected]$u'; 
      } else { 
      exit('Unrecognized connection'); 
      } 


    if ($connectionType == 'mysqli') { // DOES THIS RETURN SOME SORT OF OBJECT 
      return new mysqli($host, $user, $pwd, $db) or die ('Cannot open database'); 
     } else { 
      try { 
      return new PDO("mysql:host=$host;dbname=$db", $user, $pwd); 
      } catch (PDOException $e) { 
      echo 'Cannot connect to database'; 
      exit; 
      } 
     } 
} 

код в HTML-файле:

<body> 

<?php 

include("database.php"); 
$conn = dbConnect('global'); // WHAT does this do? 

$sql = 'SELECT * FROM images'; 

$result = mysqli_query($conn, $sql); // THIS THROWS THE ERROR (LINE 16) 

?> 


</html> 
+1

Не уверен, но я думаю, что 'return new mysqli ($ host, $ user, $ pwd, $ db) или die ('Can not open database');' возвращает TRUE или FALSE, а не объект mysqli. Что делать, если вы удаляете 'или die (...)'? Если это то же самое, проблема должна быть в 'host/user/pwd/db' vars. – panther

+0

спасибо, ребята. Ноди, можешь привести мне пример? –

ответ

-1
$result = mysqli_query($conn, $sql);  

нет никакой функции, как mysqli_query

как только вы получаете объект соединения $ Конн, использовать, чтобы вызвать функцию запроса как

$result = $conn->query($sql);

Обратите внимание, что если соединение не установлено с базой данных не-объект будет возвращен и этот код линия потерпит неудачу с ошибкой followinf

«Фатальная ошибка: Вызов функции член запроса() на не-объект»

См. PHP Manual for mysqli::query для получения дополнительной информации. И см. Это tutorial для начала работы с mysqli.