私は次の機能を持っています:
function insert($database, $table, $data_array)
{
# Connect to MySQL server and select database
$mysql_connect = connect_to_database();
mysql_select_db ($database, $mysql_connect);
# Create column and data values for SQL command
foreach ($data_array as $key => $value)
{
$tmp_col[] = $key;
$tmp_dat[] = "'$value'";
}
$columns = join(",", $tmp_col);
$data = join(",", $tmp_dat);
# Create and execute SQL command
$sql = "INSERT INTO ".$table."(".$columns.")VALUES(". $data.");";
$result = mysql_query($sql, $mysql_connect);
# Report SQL error, if one occured, otherwise return result
if(mysql_error($mysql_connect))
{
echo "MySQL Update Error: ".mysql_error($mysql_connect);
$result = "";
}
else
{
return $result;
}
}
php の値は次のとおりです。
$content_table = "p_content";
$insert_array['title'] = $title;
$insert_array['content'] = $content;
$insert_array['url'] = $get_source;
$insert_array['video'] = $video;
$insert_array['date'] = $date;
insert(DATABASE, $content_table, $insert_array);
このすべての結果として、id (キー、自動インクリメント)、url、および日付を含む行が追加されます。タイトル、コンテンツ、ビデオは空白です。タイトルをエコーすると、正しい結果が得られます。タイトルを var_dump すると、string(15)"blablablabla" が得られます。これも正しいです。
$title = "asdf"; を手動で設定すると、正しく挿入されています。コンテンツとビデオについても同様です。
テーブル構造
id int(8) unsigned NO PRI NULL auto_increment
title varchar(1000) はい NULL
content longtext YES NULL
video varchar(3000) はい NULL
url varchar(300) はい NULL
日付 日付 はい NULL