Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库正在连接但未插入记录?_Php_Mysql - Fatal编程技术网

Php 数据库正在连接但未插入记录?

Php 数据库正在连接但未插入记录?,php,mysql,Php,Mysql,我正在编写一个简单的脚本,从TweetMemeAPI中提取内容,然后将其插入数据库进行进一步格式化。这是我目前拥有的,但它没有插入任何记录,也没有返回数据库连接的错误,因此我可以假设它已连接,并且在插入时失败 $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = '****'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysq

我正在编写一个简单的脚本,从TweetMemeAPI中提取内容,然后将其插入数据库进行进一步格式化。这是我目前拥有的,但它没有插入任何记录,也没有返回数据库连接的错误,因此我可以假设它已连接,并且在插入时失败

   $dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '****';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

$dbname = 'footy';
mysql_select_db($dbname) or die('Couldnt connect to database table');



  $tweetmeme = "http://api.tweetmeme.com/stories/popular.xml?category=sports-soccer&count=30" ; 

  $xml = @simplexml_load_file($tweetmeme) or die ("no file loaded") ; 

 echo count($xml->stories->story)."stories in the XML file<br /><br />";
echo $xml->getName() . "<br /><br />";
foreach($xml->stories->story as $story)
{
    $title=$story->title;
    $url=$story->url;
    $media_type=$story->media_type;
    $created=$story->created_at;
    //$current_time=$date();
    $url_count=$story->url_count;
    $comment_count=$story->comment_count;
    $excerpt=$story->excerpt;

    $sql = "INSERT INTO ft_tweets (title,url,media_type,created_at,mention_count,comment_count,excerpt) VALUES ($title,$url,$media_type,$created,$url_count,$comment_count,$excerpt)";
    $result = mysql_query($sql);

对各种项目执行vardump将返回objectSimpleXMLElement,这就是xml结构的外观示例

请确保查询成功,尝试添加或删除类似的错误,以查看是否出现任何错误:

$result = mysql_query($sql) or die(mysql_error());

在foreach循环中放入一个print语句,看看它是否首先到达那里,我建议您也打印出insert查询,看看它是否有效;声明$sql后,返回如下内容:插入ft_推特标题、url、媒体类型、创建时间、提及次数、评论次数、摘录值马丁·塞缪尔:没有人喜欢阿什利·科尔,但你必须承认:他很好|在线邮件,23:14:35,12,0,在线邮件:马丁·塞缪尔:没有人喜欢阿什利·科尔,但你必须承认:他很好:尽管有耸人听闻的标题。。。这看起来是正确的。您正在将原始字符串惰性化到查询中。您需要用引号括起来,并通过mysql\u real\u escape\u字符串运行文本以生成有效的查询。如果您使用mysql\u查询执行了任何错误检查,请调用$result=mysql\u query$sql或die mysql\u error;你会看到这个。mysql\u错误报告你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获取使用正确语法的信息。。错误消息在插入第一项时结束,因此它立即失败。如果有帮助,则从数据库中删除表结构:ft_tweets id int11 NOT NULL自动增量,标题文本字符集utf8 collate utf8 unicode ci NOT NULL,url文本字符集utf8 collate utf8 unicode ci NOT NULL,媒体类型集“news”,“视频”、“图像”字符集utf8 collate utf8\U unicode\U ci NOT NULL、创建日期NOT NULL、添加日期NOT NULL、提及计数smallint6 NOT NULL、注释计数smallint6 NOT NULL、摘录文本字符集utf8 collate utf8\U unicode\U ci NOT NULL、主键id