2016-04-28 5 views
-1

申し訳ありませんが、私の実際のコードは私のPCのものです。ここでは、PHPコード、HTML、CSS、Java Scriptだけを受け付けています。PDOがNULL値をMySqlにインポートしています

$conn = new PDO("mysql:host=localhost;dbname=fabio", "root", ""); 
 
    // set the PDO error mode to exception 
 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
 

 
\t $filename = ($_FILES['arquivocsv2']["tmp_name"]); 
 
$abraArq = fopen($filename,"r"); 
 
$import = $conn->prepare("INSERT INTO relatorio (DocumentoSD,Descricao,CodCliente,Cliente,Regiao,DataDocumento,Material,Condicoes,Plano)VALUES (:DocumentoSD, :Descricao, :CodCliente, :Cliente, :Regiao, :DataDocumento, :Material, :Condicoes, :Plano)"); 
 

 
$import->bindParam(':DocumentoSD', $DocumentoSD,PDO::PARAM_STR); 
 
$import->bindParam(':Descricao', $Descricao,PDO::PARAM_STR); 
 
$import->bindParam(':CodCliente', $CodCliente,PDO::PARAM_STR); 
 
$import->bindParam(':Cliente', $Cliente,PDO::PARAM_STR); 
 
$import->bindParam(':Regiao', $Regiao,PDO::PARAM_STR); 
 
$import->bindParam(':DataDocumento', $DataDocumento,PDO::PARAM_STR); 
 
$import->bindParam(':Material', $Material,PDO::PARAM_STR); 
 
$import->bindParam(':Condicoes', $Condicoes,PDO::PARAM_STR); 
 
$import->bindParam(':Plano', $Plano,PDO::PARAM_STR); 
 

 
while (($items = fgetcsv($abraArq, 2048, ';')) !== FALSE) { 
 

 
$DocumentoSD = $items[0]; 
 
$Descricao = $items[4]; 
 
$CodCliente = $items[5]; 
 
$Cliente = $items[6]; 
 
$Regiao = $items[7]; 
 
$DataDocumento = $items[10]; 
 
$Material = $items[11]; 
 
$Condicoes = $items[17]; 
 
$Plano = $items[29]; 
 
\t \t \t // Execute prepared query 
 
$import->execute();}

+2

まず、 '$ DocumentoSD = $ items [];'にはキーがありません。第二に、あなたは値で結ばれており、参照ではありません。つまり、バインドすると、これらの変数には値がないため、nullをバインドするだけです。あなたは 'bindValue'の代わりに[bindParam](http://php.net/manual/en/pdostatement.bindparam.php)を使います。バインド値は現在の値だけを受け取り、バインドします。 Bind paramは、その変数への参照をバインドします。値が変更されるとバインド値も変更されます。 –

+0

わかりやすいコードの字下げは、私たちの生活を楽にしてくれます – RiggsFolly

+0

「duduの完全な山」と言われる閉じるオプションはどこですか?私は再起動して[ここからブートストラップする]ことをお勧めします(http://php.net/manual/ en/book.pdo.php)_its非常に秘密のリソースは、私はそれについてあなたに言った誰にも教えてください。 – RiggsFolly

答えて

1

あなたは値によって結合されている、いない参照して:私はどのようにHTML

私はちょうど私のメモ帳++

私のコードからコピーして貼り付け

貼り付けます。つまり、バインドすると、これらの変数には値がないため、nullをバインドするだけです。 bindValueの代わりにbindParamを使用します。

bindValueは現在の値を受け取り、それをバインドします。バインディングを実行しているとき、それらの変数は設定されていないので、値はnullです。

bindParamは、その変数への参照をバインドします。値が変更されると、バインドされた値も変更されます。

+0

質問のコメントを参照してください。どうやら、これは「本当のコード」ではない... – Mike

+1

これに関わって後悔するかもしれないが、とにかく幸運! – RiggsFolly

+0

これは実際のコードだとは思ってもらえますが、はるかに大きなコードブロックの小さなサブセットで、適切なものだけを表示したかったのです。 –

関連する問題