私の意見では、私は奇妙な問題を抱えています。以下の部分は正常に動作します
$sql = "
UPDATE
".$table[0]."
SET
p_title = '".$_POST['p_title']."',
p_date = '".$_POST['p_date']."'
WHERE
p_id = '".$_POST['p_id']."'
";
if(!$db->exec($sql)){
echo($defaults->throwError('MySql error',$sql,implode(":",$db->errorInfo())));
}else{
$defaults->writeLog($table,$db->lastInsertId(),'update');
}
しかし、以下のコードを試すと、「致命的なエラー: 非オブジェクトのメンバー関数 exec() への呼び出し」が表示されます。
class Defaults{
[..]
public function query($sql){
if(!$db->exec($sql)){
echo($defaults->throwError('MySql error',$sql,implode(":",$db->errorInfo())));
}else{
$defaults->writeLog($table,$db->lastInsertId(),'update');
}
}
[..]
}
そしてマイページへ
$defaults = new Defaults();
$defaults->query("
UPDATE
".$table[0]."
SET
p_title = '".$_POST['p_title']."',
p_date = '".$_POST['p_date']."'
WHERE
p_id = '".$_POST['p_id']."'
");
どうして?
ああ、それは$db
クラスのことでした。しかし、私が何かをするとき
public function query($sql){
$db = new PDO($dbdata->hostname,$dbdata->username,$dbdata->password);
if(!$db->exec($sql)){
echo($defaults->throwError('MySql error',$sql,implode(":",$db->errorInfo())));
}else{
$defaults->writeLog($table,$db->lastInsertId(),'update');
}
}
私は厄介な取得します
致命的なエラー: キャッチされない例外 'PDOException' 「無効なデータ ソース名」というメッセージが表示される /class.defaults.php:8 で スタックトレース: #0 /class.defaults.php(8): PDO->__construct('', NULL, NULL) #1 /class.form.php(269): Defaults->query('?????????UPDATE...') #2 /module.projectbeheer.edit.php(25): Form->proceed('update', 'p_id', 'rows', Array, Array, '') #3 /class.content.php(16): include_once('/パス/') #4 /administratie.php(72): Content->write('/BraamsArchief/...') #5 /class.defaults.php の 8 行目に {main} がスローされる