Привет, я новичок в PHP и буду очень признателен, если кто-нибудь скажет мне, где я ошибаюсь в этом коде.
Чтобы поместить код в контекст, я использую Facebook для аутентификации пользователей и добавляю их регистрационные данные в базу данных моего приложения.
В следующем коде намеревается проверить, существует ли пользователь в базе данных, и если нет, добавить его.
По какой-то причине я не могу проверить $result
Я проверил переменные запроса, и они выводятся без проблем
@ $con = new mysqli('localhost', 'username', 'password', 'database');
if(mysqli_connect_errno()){
echo 'Error: Could not connect to the database. Please try again later';
exit;
}
$query = "SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid ='".$uid."'";
$result = $con->query($query);
if($result === FALSE){
$insertquery = "INSERT INTO ('oauth_provider', 'oauth_uid', 'username') VALUES ('facebook', '".$uid."', '".$username."')";
$result = $con->query($query);
}
Я, вероятно, должен добавить, что у меня есть код, работающий с использованием более старого подхода mysql. Но я читал, что лучше использовать объектно-ориентированный подход mysqli.
Вот старый рабочий код
if($session){
$con = mysql_connect('localhost', 'user', 'password');
$select_db = mysql_select_db('database');
if(!$con || !$select_db){
die('Could not connect: ' . mysql_error());
}
else{
echo "connected to database and table selected";
}
$query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user['id']);
$result = mysql_fetch_array($query);
if(empty($result)){
$query = mysql_query("INSERT INTO users (oauth_provider, oauth_uid, username) VALUES ('facebook', {$user['id']}, '{$user['name']}')");
$query = mysql_query("SELECT * FROM users WHERE id = " . mysql_insert_id());
$result = mysql_fetch_array($query);
}
}
Любая помощь, которую вы можете мне оказать, приветствуется.