-1

私は2日間試しましたが、この挿入ステートメントを機能させることができません...何か間違ったことをしていますか?(私もエラーは発生していません)

<?php
$username = "1";
$kname = "1";   
$sql = "INSERT INTO photos(username, kname) 
         VALUES('" . $username . "', '" . $kname . "')";
    $hostname_Database = "(censored)";
    $database_Database = "(censored)";
    $username_Database = "(censored)";
    $password_Database = "(censored)";

    $mysqli = new mysqli($hostname_Database, $username_Database, $password_Database, $database_Database); 
    if (mysqli_connect_errno()) {
       printf("Connect failed: %s\n", mysqli_connect_error());
       exit();
    }



    $result = $mysqli->query($sql);
    if ($result) {

 }
?>
4

2 に答える 2

0

SQLステートメントでphp変数を直接使用しないでください。SQLインジェクションの大きなチャンスがあります。

PHPにPDOを使用してみてください。これは、SQLCRUD操作を実行するための推奨される方法です。

まず、データベースを設定してから、挿入、選択、更新などのクエリを実行する必要があります。DB設定をdb.phpなどの別のファイルに入れて、DBクエリを使用する各PHPファイルに含める場合、より少ない量のコードを書くことはあなたに大いに役立ちます。

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$stmt = $conn->prepare("INSERT INTO photos (username, kname) VALUES (?, ?)");
$stmt->execute([  $username , $kname   ]);

詳細については、w3schoolリンクを試してください:https ://www.w3schools.com/php/php_mysql_prepared_statements.asp

于 2020-07-24T22:39:11.620 に答える
-1

このようなことを試してください、

$sql = "INSERT INTO photos(username, kname) 
     VALUES(\" $username  \", \"  $kname \")";
于 2012-11-11T23:16:27.147 に答える