Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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/1/php/296.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
Javascript &引用;mysql“U real”U escape“U string”;连接到数据库时出错..我做错了什么?_Javascript_Php_Prepared Statement_Mysql Real Escape String - Fatal编程技术网

Javascript &引用;mysql“U real”U escape“U string”;连接到数据库时出错..我做错了什么?

Javascript &引用;mysql“U real”U escape“U string”;连接到数据库时出错..我做错了什么?,javascript,php,prepared-statement,mysql-real-escape-string,Javascript,Php,Prepared Statement,Mysql Real Escape String,好吧,这让我发疯了。 我的PHP版本是5.2.17,MySQL版本是5.1.59 我的javascript(jquery)是: 这是页面加载时的ajax调用 我的“file.php”包含以下代码: <?php require_once"getDBParameters.php"; $dbParameters = getDBParameters(); if($dbc = mysqli_connect($dbParameters['db

好吧,这让我发疯了。 我的PHP版本是5.2.17,MySQL版本是5.1.59

我的javascript(jquery)是:

这是页面加载时的ajax调用

我的“file.php”包含以下代码:

    <?php

        require_once"getDBParameters.php";

        $dbParameters = getDBParameters();
        if($dbc = mysqli_connect($dbParameters['db_host'], $dbParameters['db_username'], $dbParameters['db_pass'], $dbParameters['db_name'])){

            if(isset($_POST['dropTable'])){
                $dropTable= $_POST['dropTable'] ;               
                $escapedRealString = mysql_real_escape_string($dropTable, $dbc );

                echo ($escapedRealString );
                exit();
            }
        }
    ?>
如果我使用prepared语句,同样的连接也能很好地工作,但是,在这种情况下,我不能使用prepared语句,因为我正在删除一个基于用户输入的MYSQL表:

    DROP TABLE $dropTable
PHP手册中说我不能使用准备好的语句,如:

    prepare("DROP TABLE ?")
我可以向您保证函数“getDBParameters”工作正常。 有什么问题吗?还有其他解决办法吗

mysqli_connect
     ^
mysql_real_escape_string
     ^
您正在混合使用MySQLi和MySQL函数。它们是完全不同的、不兼容的扩展。如果必须使用,请使用。

如果正在使用,则不能使用mysql转义函数

您也可以使用

请注意,由于PHP mysql和mysqli库是不同的,因此参数类型也不同。mysql使用,而mysqli是


编辑:如上所述,删除基于用户输入的表是危险的。

在这种情况下,我不能使用预先准备好的语句,因为我正在删除基于用户输入的MYSQL表。
哇……简单的游戏很简单。@Damien嘿,他至少提供了一个干净的界面。不需要波比桌子;o) @DamienPirsy,是的……我正在开发一个私人网站的后端。。。它将只有一个用户登录。。。不过,还是要采取预防措施…谢谢你的宝贵评论tho@dinchakpianist当然依我看,在采取这种破坏性行动之前,你至少应该提供一些确认;为什么要扔掉整张桌子,而不仅仅是清空?那些是临时桌吗?如果数据库用户具有创建/删除表权限,则仍然存在风险。所有的一切都应该在一个非常好的身份验证系统的背后,如果我可以投入2美分的话:删除表永远不应该是用户需要做的事情,除非你正在编写一个像phpMyAdmin这样的数据库管理系统。否则,“数据库”是最终用户不需要知道的实现细节。
    prepare("DROP TABLE ?")
mysqli_connect
     ^
mysql_real_escape_string
     ^