【问题标题】:MYSQL Insert Submit Button PHPMYSQL 插入提交按钮 PHP
【发布时间】:2013-08-01 09:23:10
【问题描述】:

我正在生成图像列表,并希望根据我的图像旁边是否按下提交按钮来插入特定图像。

这是我生成图像列表的代码。图片旁边是提交按钮,如计数和其他数据:

// Display results
foreach ($media->data as $data) {
echo "<a href=\"{$data->link}\"</a>";
echo "<h4>Photo by: {$data->user->username}</h6>";
echo $pictureImage = "<img src=\"{$data->images->thumbnail->url}\">";
echo "<h5>Like Count for Photo: {$data->likes->count}</h5>";
echo "<form>";
echo '<input type="submit" onClick=post()>';
echo "</form>";
}

然后我尝试将该图片插入到我的数据库中:

InstagramImages(DB) - 图像(字段)

function post() {

        $hostname = "redacted";
        $username = "redacted";
        $dbname = "redacted";

        //These variable values need to be changed by you before deploying
        $password = "redacted";
        $usertable = "InstagramImages";

        //Connecting to your database
        mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
        connect to database! Please try again later.");
        mysql_select_db($dbname);

        $sql="INSERT INTO $usertable (image) VALUES ('$pictureImage')";

        if (!mysqli_query($con,$sql)) {
            die('Error: ' . mysqli_error($con));
        }

        echo "1 record added";

        mysqli_close($con);
}

任何帮助将不胜感激。我需要帮助为 php 变量 $pictureImage 创建正确的 INSERT 查询。

【问题讨论】:

  • 嗯..你到底有什么问题或错误?
  • @JustAnil 抱歉,请参阅编辑。
  • 正如您的 html 建议由 foreach 循环生成的那样,单个页面中将有多个同名的提交按钮,具有相同的函数调用 post();所以你必须通过传递一些唯一的 id 参数来确定按下了哪个提交按钮,
  • 始终使用bind_param 向您的SQL 查询添加值,永远不要在没有proper escaping 的情况下使用字符串插值,否则您会遇到讨厌的SQL injection bugs。这里不清楚您为什么使用mysql_connectmysqli_query,因为两者完全不兼容。您应该使用 mysqli 或 PDO,而不是 mysql_query

标签: php html mysql database


【解决方案1】:

另外,&lt;form&gt; 应该是 &lt;form method='post'&gt;

onclick = post()改为name='post'

而不是function post(){ 改为if($_POST['post']){

【讨论】:

  • name='post' 的双引号或单引号
  • @asg 无论如何,这在技术上并不重要。我更喜欢在我的 html 中使用单引号
  • 我相信我的插入查询现在存在问题。有什么建议吗?
  • @asg 这将是 developerCK 所说的,您有许多相同形式的重复项,这会搞砸。
【解决方案2】:
echo '<input type="submit" onClick=post()>';

onClick=post() - 这是一个仅用于 javascript 的 javascript 事件,但 post() 函数是您用 php 代码编写的,因此它无法插入到您的 tatabase 表中。

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2019-10-23
    相关资源
    最近更新 更多