Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有服务可以帮助我正确引用SQL字符串?_Php_Sql_Mysql - Fatal编程技术网

Php 是否有服务可以帮助我正确引用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字符串,我想知道是否有程序或网站可以帮助我正确引用字符串。在那里我可以输入SQL字符串,然后网站将为我分析和引用它。或者是一个程序。。我需要它因为我和他们有麻烦

很抱歉没有提供关于我的问题的详细信息,我有这个SQL字符串。我是从一本书上得到的,但我很难正确地引用它

$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'])));
?>