Mysql语法错误,对我没有任何意义

时间:2014-03-28 13:59:23

标签: php mysql sql

我已经看过关于这个错误的50个帖子,但没有一个对我有意义,他们没有我所拥有的相同错误(据我所见)。我花了一些时间在这上面,甚至在其他页面上做了同样的事情,只是遇到了这个问题并开始让我真的生气。

  Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE tbl_mem_id = 0' at line 1

代码:

<?php
if (isset($_GET['tbl_mem_id']) && is_numeric($_GET['tbl_mem_id']))
 {
// get id value
$tbl_mem_id = $_GET['tbl_mem_id'];

// check for the thing

//ECHO table here
echo "<table border='1'>
<tr>
<th>ID</th>
<th>tbl_mem_id</th>
<th>username</th>
<th>email</th>
<th>Address line 1</th>
<th>Address line 2</th>
<th>postcode</th>
<th>phone</th>
</tr>";
$sql = "SELECT * WHERE tbl_mem_id = $tbl_mem_id";
$result = mysqli_query($con, $sql) or die("Error: ".mysqli_error($con));

while($row = mysqli_fetch_array($result) )
  { ?>
  <tr>
   <td> <?php echo $row['tbl_mem_id']; ?></td>
   <td> <?php echo $row['username']; ?> </td>
   <td> <?php echo $row['email']; ?> </td>
   <td> <?php echo $row['adl1']; ?> </td>
   <td> <?php echo $row['adl2']; ?> </td>
   <td> <?php echo $row['postcode']; ?></td>
   <td> <?php echo $row['phone']; ?></td>
   </tr> <?php
  } ?>
</table> <?php
 }
 else
 // if id isn't set, or isn't valid, redirect back to view page
 {
echo "doesn't work";
header('location: dashboard.php');
 }

mysqli_close($con);

?>

$ con =我与db的连接,无意义发布它。

这个想法是到了这里我点击了一个id(通过上一页获取GET)然后它回显了与该信息相关的帐户数据,此时虽然它没有回显信息而只是表格标题。

感谢

2 个答案:

答案 0 :(得分:7)

您错过了FROM条款:

$sql = "SELECT * FROM tblname WHERE tbl_mem_id = $tbl_mem_id";

答案 1 :(得分:1)

1)你错过了&#39; FROM&#39;构造

$sql = "SELECT * FROM `table_name` WHERE `tbl_mem_id` = $tbl_mem_id";

2)执行该查询的方式非常危险,因为您使用的是$ _GET参数和精确查询字符串,您应该使用Mysql Prepared Statements(它们可以防止代码注入并对您的数据进行一些验证)