Php 是否有服务可以帮助我正确引用SQL字符串?
我很难正确引用SQL字符串,我想知道是否有程序或网站可以帮助我正确引用字符串。在那里我可以输入SQL字符串,然后网站将为我分析和引用它。或者是一个程序。。我需要它因为我和他们有麻烦 很抱歉没有提供关于我的问题的详细信息,我有这个SQL字符串。我是从一本书上得到的,但我很难正确地引用它Php 是否有服务可以帮助我正确引用SQL字符串?,php,sql,mysql,Php,Sql,Mysql,我很难正确引用SQL字符串,我想知道是否有程序或网站可以帮助我正确引用字符串。在那里我可以输入SQL字符串,然后网站将为我分析和引用它。或者是一个程序。。我需要它因为我和他们有麻烦 很抱歉没有提供关于我的问题的详细信息,我有这个SQL字符串。我是从一本书上得到的,但我很难正确地引用它 $sql = "INSERT INTO books(title, author, isbn, publisher, year, summary) VALUES (" .$conn->quote($_POST[
$sql = "INSERT INTO books(title, author, isbn, publisher, year, summary) VALUES (" .$conn->quote($_POST['title']) .
', ' . $conn->quote($_POST['author']) .
', ' . $conn->quote($_POST['isbn']) .
', ' . $conn->quote($_POST['publisher']) .
', ' . $conn->quote($_POST['year']) .
', ' . $conn->quote($_POST['summary']) .
')';
你可以看到,有许多引用发生在那里!我是从一本书中得到的,但是当我需要设计自己的SQL字符串时,我可能会分裂
你有没有建议网站或程序可以帮助我正确地转义/引用字符串?你能更具体一点吗?在编写ADO.NET代码时,通常会使用类似这样的SqlParameter对象,它会自动处理所有这些内容:
var cmd = new SqlCommand("select * from foo where fooName = @fooName;", connection);
cmd.Parameters.AddWithValue("@fooName", "O'Reilly is a bloviator");
cmd.ExecuteReader();
编写sql时对我帮助最大的是一个优秀的文本编辑器,它突出显示文本。关于使用哪个文本编辑器有很多讨论。我更喜欢vi,但我肯定emacs也会这么做,还有eclipse和几乎所有不是普通的旧windows记事本的东西。好吧,看起来你在使用PHP。您不应该手动引用,而应该使用准备好的语句。下面是一种方法,使用PDO。其他有效语法见: 你有什么建议吗 网站或程序可以帮助我 是否正确转义/引用字符串 如果启用了名为
magic\u quotes\u gpc
的设置,则可能不需要在php中转义字符串。您可以通过编写包含以下代码的php文件来确定它是否处于打开状态:
<?php
var_dump(get_magic_quotes_gpc());
?>
那么就这样使用它:
<?php
$result = mysql_query(sprintf('SELECT * FROM `table` WHERE user="%s"', clean($_POST['user'])));
?>
您不应该手动引用SQL查询。相反,使用准备好的语句。Dave向您展示了如何为ADO.NET执行此操作。对于其他语言/环境也可以这样做。你在用什么?我在用Textmate,它没有正确的突出显示。突出显示很糟糕…谢谢!!非常有用。我刚开始学习PDO和MySQL,所以我对引用感到非常困惑。我现在正在读的这本书中,我还没有读到execute语句。
<?php
function clean($input) {
if (get_magic_quotes_gpc()) {
// magic quotes are on, no need to escape
return $input;
} else {
// magic quotes are off, we need to escape
return mysql_real_escape_string($input);
}
?>
<?php
$result = mysql_query(sprintf('SELECT * FROM `table` WHERE user="%s"', clean($_POST['user'])));
?>