この投稿は、zhuzhaodan によって 2013-06-12 11:45:08 に最終編集されました
$dsn = 'mysql:host=localhost;dbname=test1'; $db = new PDO($dsn,'root','',array(PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8')); foreach($b as $k=>$v){ $db->exec('INSERT INTO siji (en,cn) VALUES ($v[0],$v[1])');
$b は、いくつかの文字列情報を含む 2 ビット配列です
1. なぜ VALUES ($v[0],$) なのかv[ 1]) このように書くとデータは挿入されないのでしょうか?変数を特定の値に変更するだけです。変更方法は? 2. exec() 関数のクエリ ステートメントで一重引用符を使用すると、変数を解析する必要がないため、より効率的です。データベースに正常に挿入できなかった場合、
try($db->exec) catch(PDOException e){echo e.getMessage();} を使用すると、エラー メッセージが表示されないのはなぜですか?
ディスカッションへの返信 (解決策)
二重引用符
は二重引用符でのみ置き換えることができ、変数は置き換えることができます
二重引用符
は二重引用符でのみ置き換えることができます。二重引用符を使用しても、データベースに挿入することはできません。 VALUES ($v[0],$v[1]) を特定の値に置き換えることによってのみ、データベースが破損する可能性があります。なぜ
"INSERT INTO siji (en, cn ) VALUES ('$v[0]','$v[1]')"