0

phpMyAdmin の下のテーブル構造を見ると、次の構造になっています。

Type - time

NULL - Yes

Default - NULL

では、なぜ単純なINSERT INTO...を実行すると、入力している値がnull. タイプについては同じ問題がありますがint、varchar についてはありません。

編集 - 以下を追加しました。

mysql の zip は int 型 (デフォルトNULL)、mysql の st_time は time 型 (デフォルトNULL) です。コードをテストしましたが、zip では機能しますが、.zip では機能しませんst_time

if($zip == NULL){
$zip = 'NULL';
}
if($st_time == NULL){
$st_time = 'NULL';
}

$cont=mysql_query("INSERT INTO mytable(zip,st_time)VALUES($zip, $st_time)");

どうやら問題を解決するこのコードをstackoverflowで見つけましたが、以下のコードを使用して複数の値を挿入する方法がわかりません。

mysql_query("INSERT INTO cb (name) VALUES (" . ($name == null ? "NULL" : "'$name'") . ")");

EDIT TAKE 2 with solution (警告 - それは醜いです)

if($zip == NULL){
$zip = 'NULL';
}
if($st_time == NULL){
$st_time = 'NULL';
}
else{
$st_time = "'".$st_time."'";
}

$cont=mysql_query("INSERT INTO mytable(zip, st_time)VALUES($zip,  $st_time)");
4

1 に答える 1

0

引用符で囲まれた文字列を使用しています'NULL'。代わりに使用NULLします (引用符で囲まれた文字列ではなく、NULL 値)

したがって$st_time = NULL、あなたのケースでは、それをそのままにしておくことをテストしているので、設定してくださいNULL

MySQL は、TIMEフィールドが文字列として渡されることを想定し'12:00:00'ており、それを内部ストレージ タイプに解析できます。正しく解析できない文字列を渡すと、デフォルトで00:00:00.

于 2013-06-28T09:37:51.263 に答える