我需要在mysql中插入一些数据。我不确定是否需要检查输入或格式化/剥离它们才能将它们插入数据库字段,因为从web返回的结果可能包含mysql不接受的字符(我认为)。将tweets插入mysql表时遇到问题。字段的类型是varchar。这是php脚本中的insert语句:
$json = $_POST['msg_top'];
$msg = json_decode($json);
foreach($msg->entry as $status)
{
$t = $status->content;
$query = "INSERT INTO msg2(id,msg,msg_id,depth) VALUES ('','$t','ID','3')";
mysql_query($query);
if(!mysql_query($query, $dbh))
{die('error:' .mysql_error());}
}
答案 0 :(得分:1)
是的,在SQL命令中使用它们之前,escape所有值都非常重要。
$json = $_POST['msg_top'];
$msg = json_decode($json);
foreach($msg->entry as $status) {
$t = mysql_real_escape_string($status->content);
$query = "INSERT INTO msg2(id,msg,msg_id,depth) VALUES ('','$t','ID','3')";
mysql_query($query);
if( !mysql_query($query, $dbh) ) {
die('error:' .mysql_error());
}
}
此外,您的查询可能存在其他问题:
至于帮助解决这个问题,我建议只将所有$ query字符串附加到日志文件中以供日后检查。然后,如果问题不明显,您可以手动尝试在数据库上运行命令(即:可能通过PhpMyAdmin)并从那里检查任何错误代码。