【问题标题】:insert data from select query从选择查询中插入数据
【发布时间】:2014-12-31 14:09:36
【问题描述】:

我正在尝试从现有变量中插入数据并从另一个表中选择列

这是我的代码

$jobtitle=$_POST['jobtitle'];
$jobdescription=$_POST['jobdescription'];
$requirements=$_POST['requirements'];
$resume=$_POST['resume'];
$expyears=$_POST['expyears'];
$submit=$_POST['submit'];
$useremail=$_SESSION['email'];

$insert=mysql_query("INSERT INTO career (jobtitle, jobdescription, requirements, expyears, resume, useremail, resname) VALUES ('$jobtitle','$jobdescription','$requirements','$expyears','$resume','$useremail', SELECT resname FROM restaurant WHERE useremail='$useremail')");

但是上面的代码没有给我的数据库任何结果

这个问题有解决办法吗?

谢谢

【问题讨论】:

标签: php html mysql sql phpmyadmin


【解决方案1】:

Note that you shouldn't be using mysql_* functions 因为它是一个已弃用的库。考虑转移到 mysqli_* 或 PDO。

话虽如此,您的查询不正确。您不能在 INSERT 语句中同时使用 VALUES() 和选择。相反,您应该选择您尝试插入的字符串文字以及您想要选择的一个值。

请尝试以下方法:

$query = "
    INSERT INTO career (jobtitle, jobdescription, requirements, expyears, resume, useremail, resname)
    SELECT '$jobtitle','$jobdescription','$requirements','$expyears','$resume','$useremail', resname
    FROM restaurant 
      WHERE useremail='$useremail'
";

【讨论】:

  • 没有VALUES关键字,只是一个选择。
  • 所以解释一下,而不是仅仅发布可能正确(但容易受到 SQL 注入)的代码而不告诉 OP 为什么这是正确的。
  • 那是完全错误的,因为 INSERT 不接受 WHERE。检查here
  • @Begueradj 不,但SELECT 可以。
  • @SterlingArcher 在回答之前我做了一个明确的警告,就这一点而言,我没有什么可做的了。由于这个问题直接基于 MySQL,实际上与 PHP 无关,我认为没有理由不继续回答。
猜你喜欢
  • 2016-08-26
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2014-09-01
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多