2015-09-14 1 views
2

J'utilise AJAX pour faire un « appel de charge » à un script PHP qui contient des informations à ajouter à une base de données, le script est en tant que tel:MySQL et AJAX, travaille dans l'un mais pas l'autre

<?php 

$create_tables = " 
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
`name` varchar(255) NOT NULL UNIQUE, 
`password` varchar(255) NOT NULL 
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; 

CREATE TABLE IF NOT EXISTS `user_details` 
(
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
`email_address` varchar(255) NOT NULL UNIQUE, 
`address1` varchar(500) NULL, 
`address2` varchar(500) NULL, 
`address3` varchar(500) NULL, 
`postcode` VARCHAR(10) NULL 
) ENGINE=InnoDB AUTO_INCREMENT=2 CHARSET=latin1; 

INSERT IGNORE INTO `user` (`id`, `name`, `password`) VALUES (1, 'admin', '704b037a97fa9b25522b7c014c300f8a'); 
INSERT IGNORE INTO `user_details` (`id`, `email_address`) VALUES (1, '[email protected]'); 
"; 

function cre($query) 
{ 
    $link = new mysqli(); 
    $link->real_connect("localhost", "root", "", "overr"); 
    return $link->query($query) ? "true" : "false"; 
} 

print cre($create_tables); 

?> 

Et l'AJAX est appelé ainsi:

function _ajax(u, t) 
{ 
    $.ajax({ 
     url: u, 
     type: "GET", 
     success: function (r) 
     { 
      $("#test").html(r); 
      console.log(r); 
      return r; 
     }, 
     beforeSend: function() 
     { 
      $(t).html("Loading"); 
     } 
    }); 
} 

$(document).ready(function() 
{ 
    _ajax("aj/tables.php", "#null"); 
}); 

Et quand je l'appelle la requête dans phpMyAdmin, il fonctionne parfaitement, mais quand je l'appelle par l'AJAX de la page de chargement, la console se journalisé « false » , comment puis-je faire en sorte que le script s'exécute et renvoie vrai, même quand il n'y a rien dans la base de données je suis Il devient "faux" renvoyé au client.

Le but est de mettre en place l'environnement avant tout est fait pour assurer que tout est en place et fonctionne correctement, ce système va changer dans l'avenir, mais pour l'instant je dois juste pour le faire fonctionner

+0

Vous ne pouvez pas exécuter plusieurs instructions dans une seule requête. – Inurosen

+0

Séparez vos requêtes et exécutez-les une par une! – Fky

Répondre

0

Essayez,

  1. Séparer chaque requête ou utiliser la fonctionnalité multiquery. Évitez d'utiliser INSERT IGNORE car vous ne pourrez pas recevoir d'erreurs. Essayez plutôt INSERT...ON DUPLICATE.