PHP/SQL语法:将变量传递给SQL查询

PHP/SQL语法:将变量传递给SQL查询,php,sql,variables,printf,Php,Sql,Variables,Printf,我试着去看看到底出了什么问题,这让我感到很累。我有两个。从第一个开始,我向第二个发送一个变量“select1”(基本上是id),然后我想上传一个pdf文件来更新该记录 $id = "-1"; if (isset($_GET['select1'])) { $id = mysql_real_escape_string($_GET['select1']); } if(isset($_POST['Submit'])) { $my_upload->the_temp_file = $

我试着去看看到底出了什么问题,这让我感到很累。我有两个。从第一个开始,我向第二个发送一个变量“select1”(基本上是id),然后我想上传一个pdf文件来更新该记录

$id = "-1";
if (isset($_GET['select1'])) {
  $id = mysql_real_escape_string($_GET['select1']);
}



if(isset($_POST['Submit'])) {
    $my_upload->the_temp_file = $_FILES['upload']['tmp_name'];
    $my_upload->the_file = $_FILES['upload']['name'];
    $my_upload->http_error = $_FILES['upload']['error'];
    if ($my_upload->upload()) { // new name is an additional filename information, use this to rename the uploaded file
        mysql_query(sprintf("UPDATE sarcini1 SET file_name = '%s' WHERE id_sarcina = '%s'", $my_upload->file_copy, $id));
    }
}
如果我用一个有效的id放一行,比如:

$id = 14;

它正在工作。我做错了什么?谢谢大家!

您同时使用GET和POST。据我所知,这种情况并没有恢复为真

if (isset($_GET['select1']))

编辑:如果你在上面没有找到任何答案;也许更多的信息/代码可以帮助您找到解决方案。

如果您需要同时接受post和get,那么您应该尝试下面的代码来检索变量

$var = 'select1';
if( isset( $_POST[$var] ) ) {
    $id = $_POST[$var];
} else if( isset( $_GET[$var] ) ) {
    $id = $_GET[$var];
} else {
    $id = -1;
}

你犯了什么错误?还是不起作用。并尝试使用“我得到了正确的值”获取反馈……mysql_查询仍然无法识别$id(sprintf(“更新sarcini1设置文件名='%s',其中id_sarcina='%s',$my_upload->file_copy,$id));我不确定您在哪里尝试
回显$id(假设就在调用mysql\u查询之前),这样您就可以确定您实际到达了那里。另外,也不确定您是否收到任何错误消息或任何类型的输出,如果是,提供它们可能会很有用。作为补充说明,您可能应该使用mysqli扩展而不是mysql(或ADOdb或PDO),并使用绑定变量而不是使用sprintfThank构建查询。因此,我在您的idea之后和if(isset($_POST['Submit']){……bla,bla之前插入了一个echo$id,它显示了正确的id。我在这里找到了一个免费的php代码,我打算更新我的一些记录,上传一个pdf文件(发票副本),并将名称保存为sarcini1表中的file_name。