如何将方括号数组中的数据插入数据库?
How can I insert data held within a square bracket array into a database?
我正在尝试将一些数据插入数据库,我有以下代码连接到数据库但没有插入任何结果(只是空行)。
我知道下面的代码不起作用,我只是试图在 PHP 中解释我想要的。问题是数据保存在一个数组中,例如 $tweet['created_at'],我需要它的可变格式,这样我就可以将它插入到数据库中。
非常感谢任何帮助,谢谢!!
if ($_GET) {
$conn = mysql_connect('localhost', 'user', 'pass')
or die (mysql_error());
$tweet['created_at']=$tweet_created_at;
$tweet['text']=$tweet_text;
$tweet['location']=$tweet_location;
$tweet['followers_count']=$tweet_followers_count;
$tweet['sentiment']=$tweet_sentiment;
mysql_select_db("db") or die(mysql_error());
mysql_query("INSERT INTO table (Created_at, Tweet, Location, Number_of_Followers, Semantic_Result) VALUES ('$tweet_created_at', '$tweet_text', '$tweet_location', '$tweet_followers_count', '$tweet_sentiment')", $dbconnect);
}
Mysql只懂SQL。因此,要将数组插入 mysql 数据库,您必须将其转换为 sql 语句。这可以手动完成或由图书馆完成。输出应该是一个 INSERT 语句。
$columns = implode(", ",array_keys($tweet));
$values = array_map('mysql_real_escape_string', array_values($tweet));
$values = implode(", ", $values);
$sql = "INSERT INTO `table `($columns) VALUES ($values)";
你可以这样做:
if ($_GET) {
$conn = mysql_connect('localhost', 'user', 'pass')
or die (mysql_error());
$tweet['created_at']=$tweet_created_at;
$tweet['text']=$tweet_text;
$tweet['location']=$tweet_location;
$tweet['followers_count']=$tweet_followers_count;
$tweet['sentiment']=$tweet_sentiment;
mysql_select_db("db") or die(mysql_error());
mysql_query('INSERT INTO `table` (`'.implode('`,`',array_keys($tweet)).'`) VALUES ('.implode("','",array_map('mysql_real_escape_string',$tweet)).')');
}
我包含 mysql_real_escape_string 因为您应该始终转义您的数据。如果您的数据库仍然有空数据,请检查字符编码并确保正确定义了数据库中的字段。例如关注者的 INT,'text' 的 TEXT,等等...
编辑:我怀疑您正试图从输入字段中检索数据。确保表单不 "POST" (
干杯伙计们,我已经采纳了你们的一些建议并且我已经开始工作了。
我替换了:
$tweet['created_at']=$tweet_created_at;
与:
$created_at = mysql_real_escape_string( $tweet['created_at'] );
并使用内爆属性
现在可以正常使用了!
谢谢!!!
我正在尝试将一些数据插入数据库,我有以下代码连接到数据库但没有插入任何结果(只是空行)。
我知道下面的代码不起作用,我只是试图在 PHP 中解释我想要的。问题是数据保存在一个数组中,例如 $tweet['created_at'],我需要它的可变格式,这样我就可以将它插入到数据库中。
非常感谢任何帮助,谢谢!!
if ($_GET) {
$conn = mysql_connect('localhost', 'user', 'pass')
or die (mysql_error());
$tweet['created_at']=$tweet_created_at;
$tweet['text']=$tweet_text;
$tweet['location']=$tweet_location;
$tweet['followers_count']=$tweet_followers_count;
$tweet['sentiment']=$tweet_sentiment;
mysql_select_db("db") or die(mysql_error());
mysql_query("INSERT INTO table (Created_at, Tweet, Location, Number_of_Followers, Semantic_Result) VALUES ('$tweet_created_at', '$tweet_text', '$tweet_location', '$tweet_followers_count', '$tweet_sentiment')", $dbconnect);
}
Mysql只懂SQL。因此,要将数组插入 mysql 数据库,您必须将其转换为 sql 语句。这可以手动完成或由图书馆完成。输出应该是一个 INSERT 语句。
$columns = implode(", ",array_keys($tweet));
$values = array_map('mysql_real_escape_string', array_values($tweet));
$values = implode(", ", $values);
$sql = "INSERT INTO `table `($columns) VALUES ($values)";
你可以这样做:
if ($_GET) {
$conn = mysql_connect('localhost', 'user', 'pass')
or die (mysql_error());
$tweet['created_at']=$tweet_created_at;
$tweet['text']=$tweet_text;
$tweet['location']=$tweet_location;
$tweet['followers_count']=$tweet_followers_count;
$tweet['sentiment']=$tweet_sentiment;
mysql_select_db("db") or die(mysql_error());
mysql_query('INSERT INTO `table` (`'.implode('`,`',array_keys($tweet)).'`) VALUES ('.implode("','",array_map('mysql_real_escape_string',$tweet)).')');
}
我包含 mysql_real_escape_string 因为您应该始终转义您的数据。如果您的数据库仍然有空数据,请检查字符编码并确保正确定义了数据库中的字段。例如关注者的 INT,'text' 的 TEXT,等等...
编辑:我怀疑您正试图从输入字段中检索数据。确保表单不 "POST" (
干杯伙计们,我已经采纳了你们的一些建议并且我已经开始工作了。
我替换了:
$tweet['created_at']=$tweet_created_at;
与:
$created_at = mysql_real_escape_string( $tweet['created_at'] );
并使用内爆属性
现在可以正常使用了!
谢谢!!!