私はMYSQLでPDOを使用しています。ときどきコードがinsert文を実行するとき。それは行っていない。このコードは機能しており、私の会社で過去8ヶ月間仕事をしていますが、今や特定の挿入文が失敗します。pdoは常にクエリを実行していません
public static function update($id,$table,$fields,$output=false,$pool = false){
$sql = "";
if($pool){
foreach($fields as $fields_single){
$fields_id = 0;
if(isset($fields_single["id"])) $fields_id=$fields_single["id"];
$sql .= self::update_sql($fields_id,$table,$fields_single,$output)."; ";
}
return max($id,self::exec($sql));
}else{
$sql = self::update_sql($id,$table,$fields,$output);
return max($id,self::exec($sql));
}
}
私は適切なデバッグを行い、すべてが関数に正しく渡されています。ここ
とは、exec関数は
public static function exec($query,$output=false){
self::initialise();
self::$query_count++;
try{
if($output) echo $query."<br /><br />";
self::$db_connection->exec($query);
return self::$db_connection->lastInsertId();
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
}
でありPDOExceptionによってスローされたエラーはありません、それは毎日のSQL文1000年代を処理します。なぜそれがそれに与えられた挿入ステートメントを処理しないかについてのアイディアや推測は、高く評価されます。
ありがとうございます。
また、私はlastInsertid()を実行するときに新しいIDを取得しますが、データベースに表示されることはありません。
あなたの2つの例は同じです。 –
私はそれを固定言い訳。最初の関数は第2の関数を呼び出します – user1246035
'update_sql'は何をしますか? – ManseUK