2017-10-06 1 views
-2

Une section de code que j'ai écrite est supposée vérifier une variable PHP dans l'URL, puis effectuer une requête mysql en utilisant la variable URL et le nom d'utilisateur WordPress pour enregistrer une entrée dans la base de données.Pourquoi PHP ne va-t-il pas exécuter une requête mysql?

<?php x_get_view(x_get_stack(), 'wp', 'page'); ?> 

<?php 

if (empty($_GET['vote']) == FALSE) { 

    $vote = $_GET['vote']; 
    $vote = mysql_real_escape_string($vote); 

    $db_host = 'localhost'; 
    $db_username = '******'; 
    $db_password = '***********'; 
    $db_name = '*****'; 

    $current_user = wp_get_current_user(); 

    $current_username = $current_user->user_login; 

    $sql = "INSERT INTO Votes (Name, Vote) VALUES('$current_username','$vote')"; 

    $db_connection = mysqli_connect($db_host, $db_username, $db_password, $db_name); 

    mysqli_query($db_connection, $sql); 

}; 

?>

La page semble charger très bien, mais il n'y a aucune entrée dans la base de données.

J'ai édité le code pour inclure le nom de la base de données (plusieurs utilisateurs ont dit qu'il me manquait).

+0

Juste une petite question .... mais est-ce vraiment la façon dont votre nom d'utilisateur et mot de passe db db ressemblent? Aussi, avez-vous des rapports d'erreurs activés? –

+0

Où est votre base de données sélectionnée? dans quelle base de données doit-il aller? '$ db_connection = mysqli_connect ($ db_host, $ db_username, $ db_password, THEDATABASE);' –

+0

Je devrais avoir spécifié - ce n'est pas ainsi que le nom d'utilisateur et le mot de passe apparaissent dans le code actuel. – mcm66103

Répondre

0

Il me semble que votre base de données ne dispose pas de la base de données à laquelle se connecter. vous avez donné l'ip (localhost), vous avez donné le nom d'utilisateur et le mot de passe, mais vous n'avez pas spécifié quelle base de données.

changement

$db_connection = mysqli_connect($db_host, $db_username, $db_password);

à

$db_connection = mysqli_connect($db_host, $db_username, $db_password,THEDATABASE) or die(mysqli_error());

ou vous pouvez les diviser

$db_connection = mysqli_connect($db_host, $db_username, $db_password) or die(mysqli_error());

$db = mysqli_select_db($db_connection, "NAMEOFDATABASE") or die(mysqli_error());

Le « ou mourir » devrait montrer des erreurs u s'il y a un

+0

J'ai changé le code à ce que vous avez suggéré. Où l'erreur apparaîtrait-elle? Aucune entrée n'a été effectuée dans la base de données et aucune information d'erreur n'a été trouvée dans la console. – mcm66103

+0

Vous avez manqué quelque chose –