由於某種原因,我有一個只能部分工作的INSERT語句。該代碼採用POST數據並使用它恢復XML文件,從XML文件中提取數據並將其呈現給用戶。然後用戶可以確認數據是否正確並將其添加到數據庫中。無法將PHP變量插入到數據庫中
<?php
require($DOCUMENT_ROOT . "header.html");
// Conect to Database
$con = mysql_connect("localhost","USER","PASSWORD");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("DATABASE", $con);
// Find XML File
$xml = simplexml_load_file("http://www.crossref.org/openurl/".
"?id=doi:".urlencode($_POST[send_doi]).
"&noredirect=true&pid=APIKEY&format=unixref");
// Set variables with XML data
$title = $xml->doi_record->crossref->journal->journal_article->titles->title;
$year = $xml->doi_record->crossref->journal->journal_article->publication_date->year;
$journal = $xml->doi_record->crossref->journal->journal_metadata->full_title;
$doi = $xml->doi_record->crossref->journal->journal_article->doi_data->doi;
// If user click yes add to the Database
if (!empty($_GET['act'])) {
$sql="INSERT INTO ref (uid, date, doi, title, year, journal) VALUES ('1',NOW(),'$doi','$title','$year','$journal')";
if (!mysql_query($sql,$con))
{
die('The Reference could not be added, beacuse of SQL Error:' . mysql_error());
}
echo "New Reference Added";
mysql_close($con);
} else {
?>
<!-- Present the XML data to user -->
<h1>Add Reference</h1>
<p><strong>Is this the reference you want to add?</strong></p>
Title: <?php echo $xml->doi_record->crossref->journal->journal_article->titles->title;?><br />
Year: <?php echo $xml->doi_record->crossref->journal->journal_article->publication_date->year;?><br />
Journal: <?php echo $xml->doi_record->crossref->journal->journal_metadata->full_title;?><br />
DOI: <?php echo $xml->doi_record->crossref->journal->journal_article->doi_data->doi;?>
<form action="newref-getxml.php" method="get">
<input type="hidden" name="act" value="run">
<input type="submit" value="Yes">
</form>
<?php
}
require($DOCUMENT_ROOT . "footer.html");
?>
代碼成功恢復的XML數據,並將其呈現給用戶,當他們點擊提交按鈕一個新的記錄添加到與正確的UID和數據值的數據庫,但對於DOI,標題沒有值,一年或雜誌
你會得到什麼錯誤?這些值是否真的存在?數據庫是否爲這些條目的正確字段類型? – Peon
重要:PHP手冊強**建議不要再使用'mysql_xxx()'函數。它們已經過時並且不安全。它們也處於被棄用的過程中,因此將從PHP的未來版本中刪除。您應該使用mysqli_xx()函數或PDO庫。 – SDC
我沒有收到任何錯誤消息 – falcs