2016-04-10 10 views
-2

ちょっとphpとsqlに関してはかなり初心者ですので、これが混乱しても許せませんが、mysqlからmysqliに自分のコードを切り替えようとしています。もはや働いていない。私はたくさんのものを試しました、そして、私はこれが正しいように見えるものから、それはまだ動作していません。私は間違いなく挿入して削除する権限を持っていると、DBにログインしているユーザー。私は明白な何かを欠いていますかmysqliに切り替えた後にPHPでSQLクエリが機能しない

$db_host  = 'localhost'; 
$db_user  = 'db_user'; 
$db_pass  = 'password'; 
$db_database = 'database'; 

$db = new mysqli($db_host, $db_user, $db_pass, $db_database); 

if ($_POST['submit2']){ 
    $promo = $_POST['promotext']; 

    $sql = "INSERT INTO 'promo' ('words') VALUES ('$promo')"; 
    mysqli_query($db, $sql); 

    echo ("<SCRIPT LANGUAGE='JavaScript'> 
      window.alert('Posted Succesfully!.') 
      window.location.href='promo.html' 
      </SCRIPT>"); 
    exit(); 
} 

if ($_POST['delete']){ 

    $sql = "DELETE FROM 'promo' WHERE id>0"; 
    mysqli_query($db, $sql); 

    echo ("<SCRIPT LANGUAGE='JavaScript'> 
     window.alert('Deleted Succesfully!.') 
     window.location.href='promo.html' 
     </SCRIPT>"); 
    exit(); 
} 
+0

を()'? –

+0

'String Literal'にクエリを書くことはデータベースにクエリを発行しません。 **もちろんmysql_を使った作業はありません** – RiggsFolly

+0

'$ db'はどのように設定されていますか? –

答えて

0

はあなたがが$sqlでコマンドをを実行していないことを実現していますか? mysqli_query($connection, $sql)というコマンドを実行するだけで問題は解決します。

コメントに記載されているように、テーブル名にバッククォート `を使用します。

そして、SQLインジェクションに関するこれらのセクションをお読みください:あなたは `mysqliのと呼ばれている

  1. PHP Manual
  2. SO post
+0

ああ愚かな間違い。私はまだそれは私のDBから削除されていないことを追加した後もうーん。私はmysqli_query($ sql)を試してみました.2つのパラメータが必要なので、mysqli_query($ db、$ sql)というdb login変数を追加しました。それは他の何かになることができますか? –

+0

@MattMurphyあなたの投稿を追加コードで編集してください。 –

+0

私は投稿を更新しました –

関連する問題