0

文字列を使用して「INSERT INTO」MySQL クエリを作成しましたが、このクエリは列「date」のみを更新し、列「id」の値として「0」を返します。

$c= "2013-11-29 12:00:00";//whole code
$d= "2013-11-30 12:00:00";
$date_3 = date("Y-m-d g:i:s", strtotime("$c"));
$date_4 = date("Y-m-d g:i:s", strtotime("$d"));
$results = array($date_1);
$i = $date_3;
$allCane="";
while ($i <= $date_4) {
$i = date("Y-m-d g:i:s", strtotime($i));
array_push($results, $i);
$k= $i . "\n";
$chunks = str_split($k, 19);
$nexstring = join('\')', $chunks);
$cane = implode(', (\'{$id}\', \'', str_split($nexstring, 21));
$allCane .= $cane; // appends $cane to $allCane
$i = date("Y-m-d g:i:s",strtotime("+1 day", strtotime($i)));
}
$string ='(\'{$id}\', \' '.$allCane;
$string=substr($string,0,-12);
echo $string;//('{$id}', ' 2013-11-29 12:00:00'), ('{$id}', ' 2013-11-30 12:00:00')
$id=54;

$insert = mysql_query("INSERT INTO events (id, date) VALUES $string");
// i build the query using $string. 

$insertの構文は正しいのですが、実際には「id」列を更新できません。

作業$idを文字列にする方法はありますか?

4

1 に答える 1

1

Variablessingle quotes('') で囲まれたものは解析されないため、double quotes変数名を文字列で囲むときは常に ("") を使用します。

以下を使用

$insert = mysql_query("INSERT INTO events (id, date) VALUES ('{$id}', ' 2013-11-29 12:00:00'), ('{$id}', ' 2013-11-30 12:00:00')");
于 2013-11-14T16:10:32.307 に答える