2010-08-18 5 views
4

Je suis en train d'apprendre mysql et ayant un problème avec la mise à jour/ajout de données à la tableCant Mise à jour la base de données MySQL

c'est mon code et après l'exécution de cette page quand je vais à phpmyadmin pour voir si les nouvelles données ont montré En haut, je ne le vois pas là.

<?php 

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 

if(!$conn) { die("Could not connect"); } 
$dbname = "test"; 
mysql_select_db($dbname, $conn); 

mysql_query("INSERT INTO 'test'.'table1' 
       ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8') 
      VALUES 
       ('test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8')"); 

mysql_close($conn); 

?> 

Quelqu'un peut-il me dire ce qui ne va pas avec cela?

+0

Avez-vous essayé de courir la déclaration en l'état dans phpMyAdmin? test.table1 n'a pas besoin d'être entre guillemets simples, ou backticks d'ailleurs, mais les backticks seraient plus valides. Au-delà, êtes-vous sûr que votre code s'exécute même? –

+0

des messages d'erreur sont-ils retournés? – LesterDove

+0

« Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser » – Kartik

Répondre

2

Le problème est les guillemets autour des noms de champ. MySQL n'autorise pas les noms de champs entre guillemets simples. Ils doivent soit être nu (A1), ou à l'intérieur (`A1` contre-apostrophes), de sorte que votre requête doit être réécrite comme:

INSERT INTO table1 (A1, A2, A3, A4, A5, A6, A7, A8) 
VALUES ('test1', 'test2', 'test3', 'test4', etc.....); 
0

Tout d'abord, assurez-vous que la base de données a été sélectionné fin:

mysql_select_db($dbname, $conn) or die('Could not select the database'); 

Il y a des chances qu'il ya une erreur dans votre requête, une raison pour laquelle les données ne sont pas ajoutées, essayez d'ajouter or die(mysql_error()) après cette fonction mysql_query pour voir l'erreur possible:

mysql_query("your query....") or die(mysql_error()); 

pas besoin aussi de préciser le nom de la base de données:

'test'.'table1' 

Il suffit d'utiliser table1 dans votre requête.

Activation des rapports d'erreur est également utile:

ini_set('display_errors', true); 
error_reporting(E_ALL); 
+0

« Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser " Pouvez-vous s'il vous plaît dites-moi ce qui ne va pas avec la requête? – Kartik

0

Voici une astuce pour en général lorsque vous travailler avec MYSQL (ou tout SQL DB). Si vous ne savez pas comment faire quelque chose ou si vous vous trompez. Utilisez les outils GUI fournis pour effectuer le travail, puis vérifiez le code résultant.

Entrez PHPMyAdmin, effectuez une insertion, puis copiez et collez le code pour voir ce que vous faites mal.

+0

c'est comment j'ai eu le code de requête, mais ne semble pas fonctionner – Kartik

2

Assurez-vous de faire la vérification des erreurs pour voir si la connexion MySQL a des problèmes aussi:

if(!mysql_select_db($dbname, $conn)) { 
    echo mysql_error($conn); 
}else { 

    if(!mysql_query("INSERT INTO 'test'.'table1' ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8') VALUES ('test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8')")) { 
     echo mysql_error($conn); 
    } 
} 
Questions connexes