【问题标题】:PHP - mysqli_query not providing errorPHP - mysqli_query 不提供错误
【发布时间】:2023-03-23 02:56:01
【问题描述】:

我正在编写一个脚本,它使用来自用户的数据来创建一个页面并为创建的页面创建一个数据库条目。不幸的是,尽管我使用的查询是由phpmyadmin 生成的,但插入没有成功。

我尝试对所有函数调用同时使用mysqlmysqli(显然不是同时),但无论如何都收到了相同的结果。

虽然我很想了解插入失败的原因,但更紧迫的问题是没有产生错误。

正在输入错误条件,但 mysql_error()mysqli_error() 最终都为空。

这是发生错误的代码段:

$result = mysqli_query($pvcon,"'INSERT INTO content 
        (content.post_type_id,
        content.content_title,
        content.content_description,
        content.content_link,
        content.user_id,
        content.content_image_path,
        content.date_posted) 
        values (\'".$post_type."\', 
        \'".$title."\', 
        \'".$description."\', 
        \'".$content_link."\', 
        \'".$user_id."\', 
        \'".urlencode($article_image)."\', 
        now())'");
        if (!$result) {
            echo "DB Error, could not list tables\n";
            echo 'MySQL Error: ' . mysqli_error();
            exit;
        }

我发现了多个与我相似的问题,但这些解决方案都没有对我有用,这让我相信我忽略了一些简单的步骤。

【问题讨论】:

    标签: php mysqli insert


    【解决方案1】:
    $result = mysqli_query($pvcon,"'INSERT INTO content 
                                   ^---
       ..... snip....
            now())'");
                  ^----
    

    您的整个查询是错误的 - 您已将其括在 '-quotes 中,使整个查询成为一个整体字符串。而且您的错误调用永远不会起作用,因为您忘记在调用中包含链接标识符:

    echo 'MySQL Error: ' . mysqli_error($pvcon);
                                        ^^^^^^--missing.
    

    另外,鉴于您使用的变量名称,您可能还容易受到 SQL 注入攻击,因此请尽情享受在这一切之上拥有您的服务器 pwn3d。

    【讨论】:

    • 就是这样。非常感谢!
    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多