0

这很简单,但我似乎无法找到我正在寻找的答案。

这完美地工作:

mysql_query("INSERT INTO Courses (CourseName) values ('MyValue')");

但这不起作用:

mysql_query("INSERT INTO Courses (CourseName) values ('" + $_POST['course'] + "')");

我测试过,我知道$_POST['course']包含MyValue.
我什至可以在 php 中使用这种语法吗?

就我而言,Sql Injection 不是问题。

4

4 回答 4

0
mysql_query("INSERT INTO Courses (CourseName) values ('" + $_POST['course'] + "')");

PHP 不支持您使用的字符串连接方法。它支持其他语言。构建字符串有多种选择。

选项1:替换+.

mysql_query("INSERT INTO Courses (CourseName) values ('".$_POST['course']."')");

选项2:不休息

mysql_query("INSERT INTO Courses (CourseName) values ('{$_POST['course']}')");

在语言之间切换时,您应该阅读基础知识,尤其是在这种情况下,搜索“PHP 字符串连接”将为您提供所需的内容。

另外:不要使用 MySQL_*,因为它在 PHP 5.5 中已被弃用。使用 MySQLi_* 或 PDO

于 2013-03-11T17:15:06.657 回答
0

使用.代替+

mysql_query("INSERT INTO Courses (CourseName) values ('" . mysql_real_escape_string($_POST['course']) . "')");
于 2013-03-11T17:10:34.360 回答
0

PHP 使用 . 连接字符串

mysql_query("INSERT INTO Courses (CourseName) values ('".mysql_real_escape_string($_POST['course'])."')");

还可以使用 mysql_real_escape_string 来防止任何错误,例如 o'neil 中有一个单引号。

于 2013-03-11T17:11:07.160 回答
0

1) 使用 mysqli,而不是 mysql ,因为它已被弃用。

2) 如果您仍然使用 mysql,请始终使用 mysql_real_escape 字符串转义来自您网站的变量...

3)调试你的代码。您的示例中最快的只需使用:

      mysql_query("... your sql string ") or die(mysql_error())

比你看到的错误。(但是当您的脚本上线时,请注释掉所有“或死(mysql_error())+代码,这样其他人就看不到错误,然后破解您的网站(很容易))

4) 。是php中字符串的串联,不是+

于 2013-03-11T17:11:43.647 回答