Qu'est-ce qui causerait cela? Code suit:Pourquoi l'instruction PHP mysqli préparée fonctionne-t-elle mais insère toutes les valeurs NULL?
$m = new mysqli($host,$user,$pass,$db);
if(mysqli_connect_errno()) die('Connect failed: ' . mysqli_connect_error());
$PrepSQL = "INSERT INTO Products (" . implode(',',$this->cols) . ") VALUES (";
$PrepSQL .= '?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt = $m->prepare($PrepSQL);
if(!$stmt) die('Could not prepare: ' . $m->error . "\n$PrepSQL\n");
$ret = $stmt->bind_param('isissssddssssssssssssssssssssssssisssssss',
$contents[0], ... bunch of these here ...);
if(!$ret) die('bind_param failed: ' . $m->error);
Puis dans une boucle que j'ai:
$contents = explode('|',$NL); // NL is pipe delimited data
print_r($contents);
if(!$stmt->execute()) die("Statement failed: " . $m->error);
Et le script ne s'arrête pas, mais chaque valeur est NULL dans MySQL. La plupart des types sont des chaînes et je suppose qu'ils rempliraient au moins même si les types numériques sont faux. Le print_r
imprime correctement les valeurs.
La ligne 4 se termine par un caractère de citation incorrect. – Phil
C'était une faute de frappe après la pâte quand j'essayais de formater. – Tim
Etes-vous sûr que $ this-> cols' contient les noms de colonne corrects? – kijin