어떤 이유로 부분적으로 만 작동하는 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 및 데이터 값을 사용하여 데이터베이스에 추가 버튼을 제출 클릭하면 사용자에게 제시하지만 도이, 제목에 대한 값이 없습니다 , 년 또는 저널
어떤 오류가 있습니까? 가치가 실제로 있습니까? DB에 해당 항목의 올바른 필드 유형이 있습니까? – Peon
중요 : PHP 매뉴얼 **은 mysql_xxx() 함수를 더 이상 사용하지 않기를 강력하게 권장합니다. 그들은 쓸모없고 안전하지 않습니다. 그들은 또한 더 이상 사용되지 않으므로 향후 PHP 버전에서 제거 될 것입니다. 대신에 mysqli_xx() 함수 나 PDO 라이브러리를 사용해야한다. – SDC
오류 메시지가 표시되지 않습니다. – falcs