【发布时间】:2015-05-22 10:38:49
【问题描述】:
这是我的数据库的关系模式 其中 'articol' 是 'paper','citare' 是英文中的 'citation':
用户正在使用 ID 和密码登录并使用界面,他在数据库中介绍了他的数据。该代码非常适合添加“论文”,但现在我希望用户介绍他对相应“论文”的“引用”。问题是代码允许在表'引文'('citare')中引入引文,但我不知道如何将此'引文'与'paper'('articol')和登录的'user'相关联PHP代码?
session_start();
$user = $_SESSION['username'];
$pass = mysql_real_escape_string(encrypt_decrypt('encrypt', $_SESSION['password']));
//there is code here...
$AddQuery="INSERT INTO `citare` (articolCitat, titluCitare, autoriCitare, publicatieCitare, isiCitare, volCitare, noCitare, anCitare, linkCitare) VALUES ('$_POST[narticolcitat]','$_POST[ntitlucitare]','$_POST[nautoricitare]','$_POST[npublicatiecitare]','$_POST[nisicitare]','$_POST[nvolcitare]','$_POST[nnocitare]','$_POST[nancitare]','$_POST[nlinkcitare]' )";
mysql_query($AddQuery, $link);
$last_id_inserted_from_citare = mysql_insert_id($link);
$AddQuery="INSERT INTO artcitare (idArticol, idCitare) VALUES ('{$_POST['hidden_articol']}','".$last_id_inserted_from_citare."')";
mysql_query($AddQuery, $link);
【问题讨论】:
-
mysql_功能仍然有效吗?它们已被弃用。你在那里有 SQL 注入 + 如果没有盐和强哈希,密码是不安全的。如果你想要一篇论文作为引用的要求,那么引用表中的 paper_id 一定不能为 NULL。 -
谢谢@DanFromGermay!我将修改代码。由于网站正在建设中,现在我的问题是 INSERT 命令。
-
您应该首先检查纸张/书籍是否存在 (SELECT),如果不存在则显示错误,允许用户在添加引用之前插入纸张。我希望我理解你的问题,你可以解决它:)
-
是的,@DanFromGermay,该论文已经存在于数据库中!用户必须添加他的引文。 :(
标签: php sql inner-join