私のクラスのクエリメソッドを作成し、それはDBからデータを取得することで動作しますが、を挿入するとが動作しません。クエリメソッドを再利用してPHPのデータベースからデータを挿入およびフェッチするにはどうすればよいですか?
私の問い合わせ方法はこれです。
function query($sql, $params = array()) {
$query = $this->_conn->prepare($sql);
if(count($params)) {
$position = 1;
foreach($params as $param) {
$query->bindValue($position, $param);
$position++;
}
}
if($query->execute()) { //error is here based on the error message: SQLSTATE[42000]
$result = $query->fetchAll(PDO::FETCH_ASSOC);
} else {
return false;
}
return $result;
}
上記のクエリを呼び出すと、エラーが発生しました。あなたの関数についてまず
function insert($table, $data) {
if(count($data)) {
$keys = array_keys($data);
$values = "";
$counter =1;
foreach($data as $field) {
$values .= "?";
if($counter < count($field)) {
$values .= ", ";
}
$counter++;
}
$sql = "INSERT INTO {$table} (`". implode('`, `',$keys) ."`) VALUES {$values}";
if($this->query($sql, $data)) { //calling the method above
return true;
}
}
return false;
}
I think the error is in the query method and it only works fetching data. How can I make it flexible(like both working on fetching and insert etc. data)?
UPDATE/INSERTステートメントは結果セットを返しません。ステータスはTRUE(正常に機能しています)です(動作しませんでした) – RiggsFolly
PS:今後、COMPLETEエラーメッセージを表示してください。 – RiggsFolly
@RiggsFolly致命的なエラー: 'PDOException' with message 'SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が '???'の近くで使用するようにしてください。 1行目のC:\ wamp64 \ www \ security \ db.phpの行番号 ** $ query-> execute()の部分のquery()メソッドにエラーがあります –