2

我会直接跳进去。使用 php 如果我使用变量作为值,我在从数据库中删除记录时遇到问题。下面的代码行完美运行

mysqli_query($con,"DELETE FROM highScores WHERE Name='David'");

但是用户名会改变,因此我需要将其声明为变量。我尝试了各种变化,但似乎没有任何效果。我最近失败的尝试是下面的代码,这是我在插入时声明变量的方式。

mysqli_query($con,"DELETE FROM highScores WHERE Name='{$name}'");
4

4 回答 4

3

在这种情况下,最好检查变量是否实际包含您期望的内容。而且我还发现回显整个查询字符串是找出查询不起作用的好方法。

$sqlquery = "DELETE FROM highScores WHERE Name='{$name}'";

// have a look at the query...

echo "<pre>$sqlquery</pre>";

// use it...

mysqli_query($conn,$sqlquery);

我应该警告您,如果 $name 来自不受信任的地方,例如可公开查看的 html 表单,那么在查询中使用它之前需要将其设为“安全”。查看“准备好的陈述”。一旦你知道你的代码正确地填充了你的变量,在将它放入查询之前确保它是安全的。

于 2013-06-22T20:20:12.417 回答
0

试试这个让它运行:

mysqli_query($con,"DELETE FROM highScores WHERE Name='".$name."'");

确保$name是一个格式正确的字符串,例如string(5) David,否则它可能不会导致所需的结果,甚至可能会完全破坏您的查询。mysqli_real_escape_string如果你放一个这样的,你可以确保这一点

$name = mysqli_real_escape_string($con,$name);

在执行查询之前

于 2013-06-22T20:06:53.293 回答
0

我在寻找相同问题的解决方案时登陆这里,但发现我的数据库用户没有删除权限。出于安全原因,我之前已删除此特权。

于 2014-11-23T00:33:46.993 回答
0

我不确定.. {$variable} 在查询中是否有效。

我将变量插入查询的方式称为浓度。

mysqli_query($con,"DELETE FROM highScores WHERE Name='" . $name . "'");

句点将 2 个字符串加在一起。

但是,您尝试做的事情容易受到 SQL 注入的影响。如果我是你,我会小心 $name 中可能包含的内容。

编辑:我的错误,我已经习惯了为我插入引号的课程。

于 2013-06-22T20:11:31.063 回答