PHP中的Where子句不';不能使用变量

PHP中的Where子句不';不能使用变量,php,Php,我正在学习PHP,一段时间以来一直在努力使下面的工作顺利进行,但运气不佳 $sql = "SELECT * FROM add_employee WHERE employee_id='".$employee_id."'"; 我遇到以下错误: Notice: Undefined variable: employee_id in www/suman/payroll_process.php on line 12 我知道我输入的员工id在数据库中。当我硬编码employee_id='100'时,查询得

我正在学习PHP,一段时间以来一直在努力使下面的工作顺利进行,但运气不佳

$sql = "SELECT * FROM add_employee WHERE employee_id='".$employee_id."'";
我遇到以下错误:

Notice: Undefined variable: employee_id in www/suman/payroll_process.php on line 12
我知道我输入的员工id在数据库中。当我硬编码employee_id='100'时,查询得到一个返回


我应该如何获取变量中的值,以及该变量应该在哪里设置。您需要在脚本中的某个地方设置PHP变量
$employee\u id


另外,用于SQL查询。

您对SQL和PHP的解释是错误的。鉴于:

... WHERE employee_id='".$employee_id."'
          ^---(A)---^    ^---(B)----^
(A) 数据库中有什么内容
(B) 你想在数据库中找到什么

由于您试图在查询字符串中插入一个PHP变量,因此必须在PHP代码的其他地方定义该变量。请记住,虽然SQL数据库和PHP可以相互通信,但它们必须使用彼此的语言。您不能将PHP代码发送到数据库并期望数据库执行它。这不是数据库的工作。数据库解释SQL查询,而不解释其他内容


类似地,当数据库将数据返回给PHP时,数据库驱动程序必须将特定于数据库的blob/text/date/enum字段转换为PHP版本。PHP的工作不是解释数据库数据格式。

我猜employee\u id是从表单传递的,并且不是所有服务器都会自动将$\u POST和$\u GET转换为相应的变量。你需要先解决这个问题

$employee_id = $_POST['employee_id']; // change to $_GET['employee_id'] if the value is shwn in the url

这需要在处理sql命令之前包含。

Dude在需要定义$employee_id=100或其他内容的表达式之前//请注意,PHP和sql是不同的语言。值得注意的是,像这样的用户输入应该始终经过消毒,以避免sql注入。当然-对不起,应该说明,谢谢你指出这一点。我试着训练自己永远不要发布一些没有经验的用户可以复制和粘贴的东西,并造成安全责任:)