5

プリペアド ステートメントを使用して、ライブラリ アプリケーションの日時を挿入しようとしています。これまでのコードは次のとおりです。

    global $dbh;
    $query = "INSERT INTO `loan` SET
             `title` = (?), //example value - Lord of the Rings
             `description` = (?), //example value - Trilogy
             `start_date` = (?), //example value 20120701 in String datatype
             `end_date` = (?)";  //example value 20120702 in String datatype

    $statement = $dbh->prepare($query);
    $statement->bind_param("ssss", $title,$description,$startDate,$endDate);

    $statement->execute();
    print $statement->error; //to check errors
    $statement->close();

ただし、この値を行に挿入できないようです。それと同時に、なんとなく

            print $statement->error 

エラーは表示されないようです。

どんな助けでも本当に役に立ちます。

アップデート:

実際に動作します。間違ったデータベースを参照していました。しかし、これに偶然出会った新しい人々のために、少しアウトロを追加したいと思います.

  1. コメント/回答に記載されているすべてのコメントを削除すると、文字列が台無しになります。

  2. DATETIME の場合、MySQL は String データ型のみを認識するため、データ型を String として指定することを忘れないでください。準備されたクエリを使用していない場合は、値に '' 引用符を追加する必要があります。

  3. 時刻が指定されていないため、挿入は日付 (2012-07-01 00:00:00) 形式になります。

  4. 両方の SQL クエリが機能します。INSERT INTO tbl_name SET col_name = value または INSERT INTO tbl_name(col_name) VALUES (値) が機能します。

4

2 に答える 2

6

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

global $dbh;
$query = "INSERT INTO loan (title, description, start_date, end_date) VALUES (?,?,?,?)"

$statement = $dbh->prepare($query);
$statement->bind_param("ssss", $title,$description,$startDate,$endDate);

$statement->execute();
print $statement->error; //to check errors
$statement->close();
于 2012-07-09T14:22:48.933 に答える
-5

日付のフォーム入力が「日付」という名前の入力であると仮定すると、次のようになります。PHPタイプで

$date = $_POST['date']

$query = "INSERT INTO `loan` SET
             `title` = (?), 
             `description` = (?), 
             `start_date` = ".$date. //Insert variable here
             "`end_date` = (?)"; 

単一のタイプの入力に日付を挿入するのは良い習慣ではないことはわかっていますが、単純にするためにこの例を使用しているだけです。自分自身を理解するための適切な方法。

于 2012-07-09T14:24:27.907 に答える