【问题标题】:UPDATE doesn´t work properly (updates only a few rows) (XML to MYSQL) [closed]UPDATE 不能正常工作(只更新几行)(XML 到 MYSQL)[关闭]
【发布时间】:2014-09-19 10:45:17
【问题描述】:

所以,我有一个来自 thetvdb.com 的 XML Api

资源: 这里有一些 XML API 的摘录:http://pastebin.com/0UgMU6wZ

我的数据库:

我更新数据库的脚本:

include('config.php');
$series = simplexml_load_file("breakingbad.xml");

for ($episode = 0; $episode <= 61; $episode++) {
    $title = $series->Episode[$episode]->EpisodeName;
}

$episodenumber = $series->Episode[$episode]->Combined_episodenumber;
$season = $series->Episode[$episode]->Combined_season;
$desc = $series->Episode[$episode]->Overview;
echo "$title... $season...$episodenumber...$desc<br>";

mysql_query("
    UPDATE series
    SET episodename = '$title', description = '$desc'
    WHERE tvshow='breakingbad' AND season = '$season' AND episode = '$episodenumber'");
}

正如您在数据库图片中看到的,它更新了几行,但不是全部。

为了检查 $title、$episodenumber 等是否不为空,我在脚本中做了回显..

一切正常:

但它不会更新所有这些

【问题讨论】:

  • 在您打开&lt;?php 标记error_reporting(E_ALL); ini_set('display_errors', 1); 后将错误报告添加到文件顶部,看看它是否会产生任何结果。还有or die(mysql_error())mysql_query()。很有可能,您正在注入 SQL 不同意的字符。你需要逃避你的价值观。
  • 强制性MySQL is deprecated 注释,请改用MySQLi 或PDO,还请阅读SQL Injection,因为您的代码对它很敏感。
  • 不给我错误,sql是
  • 您的值包含 SQL 会抱怨的撇号。仅此一项就会/应该引发错误。 Use mysqli with prepared statements,或PDO with prepared statements。这很可能会解决它。

标签: php mysql xml api


【解决方案1】:

试试看:

$title = mysql_escape_string($series->Episode[$episode]->EpisodeName); $episodenumber = mysql_escape_string($series->Episode[$episode]->Combined_episodenumber); $season = mysql_escape_string($series->Episode[$episode]->Combined_season); $desc = mysql_escape_string($series->Episode[$episode]->Overview);

【讨论】:

  • 请解释这段代码应该如何工作以及为什么工作
  • sql查询中的变量必须加引号,防止sql注入。
  • sql 注入在这种情况下并不重要,因为它不是一个开放的脚本,它只是为了自动化,会尝试你的代码保持:) 编辑:致命错误:调用未定义的函数 mysql_quote()
  • 对不起,把 mysql_quote 改成 mysql_escape_string。
  • 成功了,谢谢!!!!在你的第一篇文章中编辑代码,这样大家就不会生气了:)
猜你喜欢
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
相关资源
最近更新 更多