2014-03-28 53 views
0

我已經看過像關於這個錯誤的文章50字節,但沒有真正意義上的我,他們沒有同樣的錯誤,我是有(據我所知)。我花了一些時間在這個上,甚至在其他頁面上做了同樣的事情,只是有這個問題,它開始讓我非常惱火。Mysql語法錯誤,對我沒有任何意義

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 =我連接數據庫,毫無意義的,雖然它張貼。

想法是到這裏我點擊了一個id(GET通過前一頁),然後它迴應與該信息相關的帳戶數據,目前雖然它沒有回顯信息和表格標題。

感謝

+0

但是錯誤對世界其他地方有意義您錯過了表名 –

+0

您需要了解SQL –

+0

您缺少from from子句還缺少table_name也 –

回答

7

你缺少你FROM條款:

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

請注意sql注入漏洞直接來自$ _GET' – Brewal

+0

我的天啊,這很尷尬。謝謝! – user3013008

+1

在這種情況下,SQL注入似乎可以通過頂部的'is_numeric'檢查來避免。 – Vatev

1

1)你是缺少 '從' 建設

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

2)你現在的樣子執行該查詢非常危險,因爲你正在使用$ _GET參數和確切的查詢字符串,你應該使用Mysql Prepared Statements來代替它們(它們可以防止代碼注入並提供一些驗證到您的數據)