2017-06-16 10 views
0

MYSQLデータベースに2人のユーザーがいます。 intra_readは、SELECTおよびintra_writeで与えられ、DELETE,UPDATEおよびINSERTで与えられる。しかし、残念ながらintra_writeで行を削除することはできますが、私は彼にSELECTを付与するだけです。SELECT GRANTなしでDELETEが機能しない

private function getphaseOutIDs($connection) { 
    $sql = "SELECT Mitarb_ID FROM infoMail WHERE ref_date<NOW()"; 
    $statement = $connection->prepare($sql); 
    $statement->execute(); 
    return $erg = $statement->fetch(PDO::FETCH_ASSOC); 
} 

public function deletePhaseOutIDs($connectionWrite,$connectionRead) { 
    while ($row = $this->getphaseOutIDs($connectionRead)) { 
     $sql = "DELETE FROM infoMail WHERE Mitarb_ID=" . $row['Mitarb_ID']; 
     $statment = $connectionWrite->prepare($sql); 
     $statment->execute(); 
    } 
} 

これがなぜ起こり、それを修正する方法を教えてもらえますか?おかげさまで

+0

私は他のオプションが – RiggsFolly

+0

を割り当てることができます前に、SELECTが必要とされると信じて、基本的です選択あなたはどのように書き込みまたは削除することができますか? – Exprator

+0

WHERE句で削除するレコードを選択しようとしています。今、そのステートメントの結果から(1行、または0を削除したのか)、最初にテーブルにそのIDのレコードがあるかどうかを判断することができます。権利を持たないとこのテーブルを読むには?いいえ、もちろんです。 – CBroe

答えて

0

することは、このべきではありません。

$sql = "DELETE FROM infoMail WHERE Mitarb_ID=" . $row['Mitarb_ID']; 

は、この文字列で検索してください:

$sql = "DELETE FROM infoMail WHERE Mitarb_ID='". $row['Mitarb_ID'].'""; 

それとも

$sql = "DELETE FROM infoMail WHERE Mitarb_ID= {$row['Mitarb_ID']}"; 
+1

両方の方法で動作します。 私は を書き込むことができました{$ sql = "infoMailから削除してください} Mitarb_ID = {$ row ['Mitarb_ID']} ;; – Quap

+0

うまくいけばニース! –