Bonjour, je suis novice en PHP et j'apprécierais vraiment que quelqu'un puisse me dire où je me trompe dans ce code. Pour mettre le code en contexte, j'utilise le facebook pour authentifier les utilisateurs et ajouter leurs détails d'inscription à ma base de données d'applications. Dans le code suivant l'intention de vérifier si l'utilisateur existe déjà dans la base de données et si non les ajouter. Pour une raison quelconque, je ne peux pas tester la $result
Test si une requête Select a trouvé des résultats
J'ai vérifié les variables de requête et ils font écho sans problème
@ $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);
}
Je devrais probablement ajouter que j'ai le code de travail en utilisant l'approche plus mysql . Mais j'ai lu qu'il vaut mieux utiliser l'approche mysqli orientée objet.
est ici l'ancien code de travail
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);
}
}
Toute aide que vous pouvez me donner est apprécié.
si ($ result === FAUX) { pourrait devenir si (! $ result) { – benhowdle89
si ($ result -> num_rows() == 0) devrait fonctionner. – Gazler