У меня есть эта страница 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
.
Любая идея почему?
Вам нужно определить: $dbc
before
$code = mysqli_real_escape_string ($dbc, $_GET['invite']);
например:
$dbc = mysqli_connect("localhost", "my_user", "my_password", "world");
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
имеет значение null при вызове mysqli_error()
. Итак, посмотрите, как это $dbc
может быть null
. О, верно – вы не объявляли об этом и ничего не назначали, потому что первое место, которое оно использует в коде, находится здесь:
$code = mysqli_real_escape_string ($dbc, $_GET['invite']);
и он используется так, как будто это уже что-то отличное от null
. Поскольку это в начале вашего кода, проблема в том, что вы забыли объявить и инициализировать его, подключившись к базе данных. Задача решена. 🙂
неопределенная переменная $dbc
в mysqli_error($dbc)
. вам нужно разместить здесь соединение obj.
Привет, пожалуйста, не путайте с 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");`
Теперь он отлично работает!