Insérer un tableau php dans une table mysql
Mise à jour:
J'ai oublié de mentionner que l'écho $matstring
sorties '65.70', 'Coles','34 days','14'
- qui semble être la bonne syntaxe?
Je suis un php/mysql débutant, et je pense que c'est assez de base, mais après avoir lu tous les autres stackoverflow des questions sur ce sujet et de jongler avec les différentes versions de mon code pour plusieurs heures, je ne peux pas comprendre ce que je fais mal. Serais très reconnaissant de toute aide/suggestions.
Objectif: transmettre des données de mon tableau php ($matrix
) dans une table mysql
$matrix[1]=
( [0] => 65.70 [1] => Coles [2] => 34 days [3] => 14 )
$matrix[2]=
( [0] => 62.70 [1] => Coles [2] => 13 days [3] => 14 )
$matrix[3]=
( [0] => 12.70 [1] => Safeway [2] => 43 days [3] => 14 )
Code:
$matstring=implode("','",$matrix[1]);
$matstring="'".$matstring."'";
mysql_query('INSERT INTO Australia (Price, Company, Days, Weight) VALUES ('$matstring')');
vous pouvez utiliser la fonction serialize($data) avant de l'insérer et désérialiser lors de l'extraction de données. ou utiliser json_encode et json_decode.. de toute façon vraiment.
Ce n'est pas la réponse. Essayez de changer mysql_query à echo, puis vérification de la syntaxe. Les plus susceptibles de l'extra
oh tant pis, je viens de lire le titre et supposé que c'était exactement ce que j'allais attendre.. et aussi en utilisant le natif de requêtes semble une mauvaise idée vs utiliser PDO et facilement faire quelque chose comme $dbh->prepare("INSERT INTO Australie (Prix, Société, des Jours, des Poids) des VALEURS (?, ?, ?, ?)"); $stmt->execute($matrice[1]);
Ce n'est pas la réponse. Essayez de changer mysql_query à echo, puis vérification de la syntaxe. Les plus susceptibles de l'extra
'
autour de $matstring sont ce qui signifie que vous rencontrez ''
autour de les valeurs.oh tant pis, je viens de lire le titre et supposé que c'était exactement ce que j'allais attendre.. et aussi en utilisant le natif de requêtes semble une mauvaise idée vs utiliser PDO et facilement faire quelque chose comme $dbh->prepare("INSERT INTO Australie (Prix, Société, des Jours, des Poids) des VALEURS (?, ?, ?, ?)"); $stmt->execute($matrice[1]);
OriginalL'auteur user2037290 | 2013-02-24
Vous devez vous connecter pour publier un commentaire.
lorsque j'exécute ce code :
devenir résultat:
OriginalL'auteur Eugen
Code corrigé:
(c'est à dire supprimer la deuxième ligne de code d'origine et de mettre des guillemets autour de l'argument de l'mysql_query)
Apprécier user1847757 de l'aider comme il l'a souligné,
$matstring
lui-même était correct, mais les guillemets à l'intérieur deVALUES(' ')
ont été rejoints à l'guillemets simples ajoutés à$matstring
dans la 2ème ligne de mon code d'origine, résultant enVALUES(''65.70','Coles','34 days','14'')
Merci à tous pour votre aide & des suggestions
OriginalL'auteur user2037290
vous êtes à la construction de la requête de mal. ça va ressembler à ceci:
remarque comment tous les 4 valeurs sont à l'intérieur d'une chaîne UNIQUE.. mais la chaîne est également faux (
''
).vous besoin de citer chaque valeur de la matrice:
PUIS vous imploser, vous donnant
Votre $matstring est correcte; toutefois, lorsque vous utilisez des VALEURS ('$matstring") dans votre chaîne SQL, vous êtes l'ajout de citations autour d'elle, la création de VALEURS("65.70','Coles','34 jours',14")
OriginalL'auteur Marc B
édité, essayez....
et après l'erreur...
OriginalL'auteur Eugen
J'ai fait face à semblable problème aujourd'hui et résolu comme ceci: dans mon cas,
$bank_info
est un tableau qui contient les données à insérer une nouvelle ligne...OriginalL'auteur Rok Jarc
Utilisation sérialiser fonction pour ajouter des données de tableau en tableau.
Ex-
ajouter
$str into table
.Lorsque nous obtenir les données, puis utilisez unserialize fonction.Ex-$arr = unserialize(urldecode($strenc));
Remarque: Pour les URL, utilisez urldecode fonction.
OriginalL'auteur Tapeshwar
Voici comment je le fais (très simple):
OriginalL'auteur Rus Yates-Aylott
OriginalL'auteur Sanjiv Malviya