我正在lynda.com上“PHP基本训练”的课程。到目前为止,一切都很顺利,但我需要做一些稍微不同的事情,才能达到与视频中的讲师相同的效果。下面是他的代码:
<?php
$query = "INSERT INTO subjects (
menu_name, position, visible
) VALUES (
'{$menu_name}', {$position}, {$visible}
)";
?>
当他执行此命令时,一切正常,但为了让它为我工作,我还需要将$position和$visible变量放在单引号中,使其看起来如下所示:
<?php
$query = "INSERT INTO subjects (
menu_name, position, visible
) VALUES (
'{$menu_name}', '{$position}', '{$visible}'
)";
?>
这是我能让代码正常工作的唯一方法,否则我会得到一个错误:“您的SQL语法中有一个错误,请查看与您的MySQL服务器版本对应的手册,以获得正确的语法...”我理解用单引号将$menu_name括起来,因为它表示一个字符串,而另外两个表示整数值。为什么我的代码在没有引号的情况下无法执行?是否需要在配置文件中更改某些内容?在整数上使用引号并让SQL为我进行转换是一种更好的做法,还是我不需要使用这些引号?任何帮助都将不胜感激。如果你现在还看不出来,我是个菜鸟。提前感谢您的帮助。
发布于 2011-10-22 18:33:07
检查整数的值。如果您的变量没有任何值,那么您会得到一个类似这样的查询
INSERT INTO subjects (
menu_name, position, visible
) VALUES (
'menu name', , ,)
如果您的值是正确的整数值,那么您的查询应该可以工作。
发布于 2011-10-23 03:07:39
问题解决了!
好吧,我说我是个菜鸟,一个菜鸟的错误就是让我陷入困境的原因。
我在一段代码中遗漏了一个'=‘,这导致我得到了那些MySQL语法错误。下面是我修复的代码:
<p>Visible:
<input type="radio" name="visible" value="0" /> No
<input type="radio" name="visible" value="1" /> Yes
</p>
最初,当我遇到语法错误时,我没有在value和"1“之间加一个等号。
这是一个愚蠢的错误,但当你发现一个让你头疼的错误时,它仍然会让你感觉很好。在这个过程中,我仍然学到了很多。谢谢你的帮助!
https://stackoverflow.com/questions/7858735
复制相似问题