2017-07-04 12 views
0

私は非常に奇妙な問題があります。私はそれが下に示されているようにmysqlクエリを実行したいが、それは動作していません。 phpmyadminコンソールで直接実行すると動作しますが、PHPコードでは動作していないため、INSERTクエリは正常です。MySQLデータベースの挿入

私には何が欠けているか教えてください。

$servername = "localhost"; 
$username = "admin"; 
$password = "admin123"; 
$dbname = "database1"; 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "INSERT INTO last_visit (ip, lastvisit) VALUES ('123', '123')"; 
+2

シンプル、クエリを実行しませんでした。 –

+1

は$ sqlを実行します。 $ mysqli-> query($ sql); –

+3

あなたは既に** prepared statement **をサポートするAPIを有界変数入力で使用していますので、[SQLインジェクション]からデータベースを保護するためにプレースホルダ(プリペアドステートメント)でパラメータ化されたクエリを利用する必要があります(http://stackoverflow.com/q/60174 /)! ['mysqli :: prepare()'](http://php.net/mysqli.prepare)と['mysqli_stmt :: bind_param()'](http://php.net/mysqli-stmt)から始めましょう。 .bind-param)。これらの値は現在静的ですが、後で変更する可能性が最も高いと思いますか? – Qirel

答えて

3

$ sqlは文字列であり、何もしないので、$ sqlを実行する必要があります。

これを追加します。

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
+2

'=== TRUE'のようなことを避けようとすると、悪い習慣を作ります。この場合、 'if($ conn-> query(...))'で十分です。 – tadman

関連する問題