【发布时间】:2016-09-01 10:57:26
【问题描述】:
我有这个用于从数据库返回数据的while循环代码
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
(some not important lines...)
echo "<div><a href='remove.php?id=<?php echo ".$row['id'].";?>'>remove record</a></div>";
我想通过 GET 将 id 变量传递给我的 remove.php
<?php
include '../db.php';
$id = $_GET['id'];
$con = mysqli_connect($host, $user, $pass, $db);
mysqli_query($con, 'DELETE FROM zapisy WHERE id='$id';')
mysqli_close($con);
?>
但是每次我点击我的链接它都会重定向到
remove.php?id=<?php%20echo%2042;?> // <?php echo 42;?> without all that mess, id is good
留下我认为不应该在这里的 php 标签,并且不将我的变量传递到另一个页面 - 第一个问题;第二——php返回
Parse error: syntax error, unexpected T_VARIABLE in .../admin-panel/remove.php on line 5
这告诉我 mysql 拼写附近的变量有问题,但我一直在寻找答案,但什么也没有。我将 ' ' 更改为 "" 并相反,什么都没有。还是因为变量没有传递值并且它是空的?
如果有人能帮助我或为我指明正确的道路,我将非常感激,因为我被困在这一点上,而我才刚刚开始编码。
【问题讨论】:
-
将
echo "<div><a href='remove.php?id=<?php echo ".$row['id'].";?>'>remove record</a></div>";更改为echo "<div><a href='remove.php?id=".$row['id']."'>remove record</a></div>"; -
您使用的是
mysqli,但为什么您不使用准备好的语句; 为什么? 你的 sql 语句是 sql 可注入的 SQL Injection -
@Albzi 和 2x
.,因为有单引号,而不是双引号。 -
@execor,你还没有得到答案吗?