Что mysqli_error () ожидает, что параметр 1 будет mysqli, значение null задано? - PullRequest
5 голосов
/ 17 сентября 2011

У меня есть эта страница PHP:

<?php

//$_GET['invite'] = kNdqyJTjcf;

$code = mysqli_real_escape_string ($dbc, $_GET['invite']);

$q = "SELECT invite_id FROM signups_invited WHERE (code = '$code') LIMIT 1";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

if (mysqli_num_rows($r) == 1) {
    echo 'Verified';
} else {
    echo 'That is not valid. Sorry.';
}

?>

Это возвращает ошибку Warning: mysqli_error() expects parameter 1 to be mysqli, null given.

Есть идеи почему?

Ответы [ 4 ]

12 голосов
/ 17 сентября 2011

Вам необходимо определить: $dbc до

 $code = mysqli_real_escape_string ($dbc, $_GET['invite']);

например:

$dbc = mysqli_connect("localhost", "my_user", "my_password", "world");
6 голосов
/ 17 сентября 2011

Book of Zeus уже дал вам ответ.Это для вашего будущего использования (и, надеюсь, для помощи другим в будущем).

Полезно научиться читать сообщения об ошибках и пытаться выяснить, что может их вызвать.:)

В этом сообщении точно , в чем проблема и с чего начать.

Warning: mysqli_error() expects parameter 1 to be mysqli, null given.

В сообщении говорится, что проблема parameter 1предоставляется mysqli_error, и это было null, когда mysqli_error ожидал, что это будет mysqli.

Итак, посмотрите на первый параметр, который вы предоставляете для mysqli_error, и вы увидите, что он $dbc.Теперь вы знаете, что проблема в том, что $dbc является нулевым, когда выполняется вызов mysqli_error().Посмотрите, как получается, что $dbc может быть null.О, верно - вы не объявили это и не присвоили ему ничего, потому что первое место, которое используется в коде, здесь:

$code = mysqli_real_escape_string ($dbc, $_GET['invite']);

, и оно используется, как будто это уже что-то отличное от null.Так как это в начале вашего кода, проблема в том, что вы забыли объявить и инициализировать его, подключившись к базе данных.Задача решена.:)

2 голосов
/ 02 ноября 2014

неопределенная переменная $dbc в mysqli_error($dbc).Вы должны поместить свой объект подключения здесь.

1 голос
/ 12 февраля 2014

Привет, пожалуйста, не путайте с mysql_connect(); с mysqli_connect();

Попробуйте изменить следующим образом

$conn=mysqli_connect("yourhost", "username", "password", "database-name") or die("initial host/db connection problem");`

Затем, если он подключен, передайте ваш запрос с помощью

mysqli_querry($conn, "your query string") or die ("query not executed");`

Теперь все отлично работает!

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