@sunnyrio

Почему не работает Mysqli?

Почему при запуске приложения выводиться вот такое сообщение?
Warning: mysqli::mysqli(): (HY000/1524): Plugin '*C8D939F0CBF84BB9162B0742AB08FDADBEAEE879' is not loaded in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\rnfunctions.php on line 8

Вот сам код rnfunctions.php:

<?php // rnfunctions.php
$dbhost = 'localhost';  // Эта строка вряд ли нуждаеться в изменении
$dbname = 'accounts3';
$dbuser = 'useradmin6';
$dbpass = 'passadmin6';
$appname = "Robin's Nest";

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, 3306);
if ($mysqli->connect_errno) { echo "Не удалось подключиться к MySQL: " . $mysqli->connect_erron; }

function createTable($name, $query)
{
  if (tableExists($name))
    {
      echo "Таблица '$name' уже существует <br />";
    }
    else
    {
      $mysqli->query("CREATE TABLE $name");
      echo "Таблица '$name' создана <br />";
    }
}

function tableExists($name)
{
  $result = $mysqli->query("SHOW TABLES LIKE '$name'");
  return $result->num_rows;
}

function queryMysql($query)
{
  $result = $mysqli->query($query) or die($mysqli->connect_errno);
  return $result;
}

function destroySession()
{
  $_SESSION=array();
  if (session_id() !=" " || isset($_COOKIE[session_name()]))
     setcookie(session_name(), '', time()-2592000, '/');
  session_destroy();
}

function sanitizeString($var)
{
  $var = strip_tags($var);
  $var = htmlentities($var);
  $var = stripslashes($var);
  return $mysqli->real_escape_string($var);
}

function showProfile($user)
{
  if (file_exists("$user.jpg"))
  echo "<img src='$user.jpg' border='1' align='left' />";
  $result = $mysqli->query("SELECT * FROM rnprofiles WHERE user='$user'");
  if ($result->num_rows)
    {
      $row = $result->fetch_row;
      echo stripslashes($row[1]) . "<br clear=left /><br />";
    }
}
?>
  • Вопрос задан
  • 1062 просмотра
Пригласить эксперта
Ответы на вопрос 1
dalmariko
@dalmariko
Ни рыба ни мясо. Програмясо
$dbhost = 'localhost'; // Эта строка вряд ли нуждаеться в изменении
$dbname = 'accounts3';
$dbuser = 'useradmin6';
$dbpass = 'passadmin6';
$appname = "Robin's Nest";

У меня всё вдвойных кавычках. и тут главное без пробелов после и перед текстом например: "lokalhost" как видишь нет пробелов до и после локал хост. У меня так:
$link = new mysqli("localhost","свой польхователь","свой пароль","users_login");
mysqli_set_charset($link,"utf8");
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}


Вот нормальная функция к которой должна привести была твоя книжка. Ибо либо ты что то сильно поменял в своём примере либо книга призвана гуглить. И такое бывает. Если вам понравилось ставьте Выполнение)).

@sunnyrio: по материалам статей:
http://www.php.su/functions/custom/?2 
http://www.php.su/functions/custom/?1#feat
http://www.phptown.ru/php/sql_create_table.php
http://php.net/manual/ru/mysqli.quickstart.statements.php
http://www.php.su/mysql/
http://www.php.su/mysql/?functions
Выяснилость что и как нужно передавать переменные в свою функцию, что пустую таблицу нельзя создать, ёё нужно заполнить хоть чемнибуть, ну и самое главное Функцию свою нужно вызывать однако.
<?php
function createTable(){

$dbhost = 'localhost';  // Эта строка вряд ли нуждаеться в изменении
$dbname = 'название своей базы данных';
$dbuser = 'свой пользователь MySQL';
$dbpass = 'Ваш пароль Сударь';
$tablename = "Введи нормально без всякого буйна название таблици";

$linkmysql=new mysqli("$dbhost", "$dbuser", "$dbpass", "$dbname");

if ($linkmysql->connect_errno) { echo "Не удалось подключиться к MySQL: " . $linkmysql->connect_erron; }
  
$create_table = $linkmysql->query("CREATE TABLE $tablename (id int(10),text1 varchar (100))") or die(mysqli_error($linkmysql));//id как и text1 varchar (100)) могут быть сами переменными но объявлять их нужно внутри функции иначе работать не будет.
 if($create_table) 
{echo "Таблица $tablename создана <br>";}
else{echo "Таблица $tablename НЕсоздана <br>";}      
   }

createTable();

echo "Да PhP - это круто!<br>";

?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы