2013-05-03 5 views
0

J'ai ce petit morceau de code ici:mysql_query ne rien insérer dans ma base de données

<?php 
error_reporting(E_ALL); 
include 'DB.php'; 

$con = mysql_connect($host,$user,$pass) 
    or die("Error: ".mysql_error()); 
$dbs = mysql_select_db($databaseName, $con); 

$name = $_POST['name']; 
$date = date('Y-m-d'); 
$amount = $_POST['amount']; 
$timPaid = $_POST['timPaid']; 
$rennyPaid = $_POST['rennyPaid']; 

$sql = "INSERT INTO $tableName (`name`, `date`, `amount`, `timpaid`, `rennypaid`) 
     VALUES ('$name', '$date', '$amount', '$timPaid', '$rennyPaid')"; 

$result = mysql_query($con, $sql) 
    or die("Error: ".mysql_error()); 

mysqli_close($con); 
?> 

DB.php est mes paramètres de base de données. J'appelle une requête sur le chargement de la page et il se connecte et tire bien les données, donc je sais que ce n'est pas un problème là-bas. Je n'ai également aucune erreur. Je reçois un code d'état 200 OK sur le post.

Voici le poste ajax:

var name = $('#name').val(); 
var amount = $('#amount').val(); 
var timPaid = $('#timPaid').val(); 
var rennyPaid = $('#rennyPaid').val(); 
var data = $('#newSubmissionForm').serialize(); 

$.ajax({ 
    url: 'insert.php', 
    data: data, 
    type: 'post', 
    success: function() 
    { 
     window.location.href = ''; 
    } 
}); 

-t-il quelque chose à voir avec moi sérialisation il?

J'espère que c'est assez d'informations. Merci!

+0

Qu'est-ce que $ tableName ?? Vous ne le spécifiez pas .. – Razor

+0

Vous fermez votre connexion en utilisant mysqli lorsque vous utilisez mysql_query. Il semble qu'il doit y avoir une faute de frappe là-bas. – Rikesh

+0

Le serveur retournera un statut 200 même s'il y a une erreur dans votre code. Si vous utilisez Google Chrome, vous pouvez facilement voir la réponse complète de votre requête ajax dans les outils de développement. Une chose que je pense pourrait se produire est que vous avez des apostrophes qui sont envoyées au serveur et vous n'échappez pas à vos données avant de les insérer dans votre base de données. Essayez d'utiliser 'mysql_real_escape_string()' (par exemple $ name = mysql_real_escape_string ($ _ POST ['nom'])) et vous devriez vous sentir bien –

Répondre

2

mysql_query nécessite premier paramètre comme requête et second paramètre comme objet de connexion (en option)

changement cette

$result = mysql_query($con, $sql); 

à

$result = mysql_query($sql, $con); 

vous avez également utilisé mysql pour la connexion et la requête mais vous utilisé mysqli pour fermer la connexion.

+1

Ugh .. merci :) –

+0

@TimothyOwen bienvenue ... :) –

+0

Eh bien, cela a fonctionné une fois .. Impossible d'insérer autre chose. Pas d'erreurs Probablement à voir avec ma table. –

1

Vous avez probablement juste changé l'instruction $ sql et $ con. dans mysql_query $ sql devrait être le premier paramètre. C'est facile à oublier, puisque mysqli_query devrait avoir $ con comme premier. :/

php die() est la même chose que exit, et finira le script avec l'état 200. Vous obtiendrez probablement une erreur dans la sortie. Essayez d'afficher dans la console développeur par exemple (Chrome)

0
  1. contrôle dans Internet Explorer dont le code est généré (élément inspectez)
  2. ajouter au début de votre fichier de session php
<?php 
echo '<pre>'; 
var_dump($_POST); 
die(); 
?> 

Ceci montrera les valeurs qui sont envoyées à la base de données.

Questions connexes