У меня есть эта страница 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");`
Теперь он отлично работает!