PHP - mysqli_query没有提供错误

时间:2014-03-03 03:51:25

标签: php mysqli insert

我正在编写一个脚本,该脚本使用来自用户的数据来创建页面并为创建的页面创建数据库条目。不幸的是,尽管我使用的查询是由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;
        }

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

1 个答案:

答案 0 :(得分:0)

$result = mysqli_query($pvcon,"'INSERT INTO content 
                               ^---
   ..... snip....
        now())'");
              ^----

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

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

另外,考虑到你正在使用的变量名,你可能也容易受到SQL注入攻击,所以尽量享受你的服务器pwn3d。