【问题标题】:Cannot fetch data from my database无法从我的数据库中获取数据
【发布时间】:2014-03-28 06:42:56
【问题描述】:

下面是我用来从 MySQL 数据库中获取一些数据的代码 sn-p,但我得到了一个错误。

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\test\..\line28

下面给出了代码 sn-p。有什么建议吗?

if (($_POST["status"]) === "Builder" ) {
    $sql_1= "SELECT `email_address` from `buider_basic_info` where `email_address` ='$_POST[username]'";
    echo $sql_1;
}

【问题讨论】:

  • 你需要在字符串周围加上引号
  • 您需要保护您的 POST 变量不被用于 SQL 注入攻击...
  • 始终使用参数化语句而不是字符串粘贴;当您获得username 的创意值时,这是要求a SQL injection attack

标签: php mysql parse-error


【解决方案1】:

试试这个

$sql_1= 
"SELECT `email_address` from `buider_basic_info` where
`email_address`='". $_POST['username']."'";

字段名称使用反引号而不是单引号

【讨论】:

  • 字段名称是否使用了反引号?
  • echo $sql_1 和它显示什么?
  • 不会走太远...停在它之前的行上..给出指定的错误。
  • 你在第 28 行写了什么?
  • $sql_1= "SELECT email_address from buider_basic_info where email_address ='$_POST[username]'";
【解决方案2】:

-- 您不能在表名或任何列名中使用引号。你可以使用反引号。
-- 您的查询是字符串,所以它应该在引号内。
-- 使用引号作为电子邮件地址,因为它是一个字符串

试试这个:

  $sql_1=" SELECT `email_address` 
    from `buider_basic_info` 
    where `email_address` = '".$_POST['username']."'";

【讨论】:

    【解决方案3】:
    $sql_1 = "SELECT email_address
              FROM buider_basic_info
              WHERE email_address = '".$_POST['username']."'";
    

    【讨论】:

      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2018-05-28
      • 2012-01-06
      相关资源
      最近更新 更多