PHP中的Where子句不适用于变量

时间:2012-01-02 18:58:53

标签: 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'时,查询得到了一个返回。

我应该如何获得变量中的值以及此变量的位置

3 个答案:

答案 0 :(得分:4)

您需要在脚本中的某处设置PHP变量$employee_id

另外,使用prepared statements进行SQL查询。

答案 1 :(得分:0)

你正在解释SQL& PHP错了。给出:

... WHERE employee_id='".$employee_id."'
          ^---(A)---^    ^---(B)----^

(A)数据库中有什么内容 (B)你想在数据库中找到什么

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

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

答案 2 :(得分:0)

我猜测employee_id是从表单传递的,并不是所有服务器都会自动将$ _POST和$ _GET转换为相应的变量。您需要先将其排序

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

在处理sql命令之前,需要包含此内容。