【问题标题】:mysqli stores php variable not valuemysqli 存储 php 变量而不是值
【发布时间】:2012-09-25 23:12:09
【问题描述】:

这让我发疯了。我正在使用 jQuery 图像上传和裁剪 http://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/

我正在使用此处建议的修改版本将文件位置存储在 MySQL 数据库中。 mod是我在一个表上使用INSERT,它工作得很好,除了一件事,'所有者'变量$id被存储为$id而不是$id的值。如果 $id 在每个 $_POST 上,我可以回显该值,所以我知道它就在那里。

我很确定我的语法是正确的,但我不明白为什么会这样。

    $cropped = resizeThumbnailImage($thumb_image_location, $large_image_location,$w,$h,$x1,$y1,$scale);
    //connect to the database
    include 'config.php';
    // check connection
    if (mysqli_connect_errno()) {
        exit('Connect failed: '. mysqli_connect_error());
    } 
    $sql = "INSERT INTO `photos` (`id`,`owner`,`url`) VALUES ('id','".$id."','".$thumb_image_location."')";
    // Performs the $sql query on the server to insert the values
    if ($conn->query($sql) === TRUE) {
        $conn->close();}
//Reload the page again to view the thumbnail
header("location:".$_SERVER["PHP_SELF"]);
exit();

第一行是 246,最后 3 行是原始的 247-250。

感谢您提供的任何帮助。

好的,我不知道这是我的脑子放屁还是 PHP 的问题,或者两者兼而有之。我从每个页面的标题中的 _SESSION 变量中分配了 $id 并且(忘记了)我将 $id 作为 _POST 数据(相同的值)传递。一旦我切断 _POST 数据传递并拉出 _SESSION 变量,它就可以正常工作。但是多次分配一个变量应该不是问题,不是吗?

【问题讨论】:

  • 数据库中显示的字符串是“$id”还是只是“id”?如果它是“id”,这可能意味着 $id 没有被设置并且 PHP 正在回退到将其解释为字符串。如果它是“$id”,我唯一能想到的就是在单引号内有 $id(而不是嵌套在双引号内),而这似乎不会在您的代码中发生。
  • 如果在 $sql = 行之前回显 $id 会得到什么?
  • 10 月,所有者字段填充了 $id。
  • 提姆,echo显示$id的值,我把它echo在每个页面的顶部进行调试。
  • 您是否尝试过在 $sql = 语句之前回显它以验证它没有在页面顶部之后的某个地方搞砸?

标签: php jquery mysqli


【解决方案1】:

查询行需要是这样的:

$sql = "INSERT INTO `photos` (`id`,`owner`,`url`) VALUES ('id','$id','$thumb_image_location')";

您的语法也可以正常工作,如 here 所见

这就是我的语法的工作原理,here

注意:两者的工作原理相同,因此仍在尝试找出 OP 代码中的问题。

【讨论】:

  • 这样存储 $id 而不是值,但 url 仍然有效。
  • 这看起来应该完全等同于 OP 正在使用的查询,尽管它确实需要更少令人眼花缭乱的报价跟踪(除非我在说计数时失败了)。
  • 是的,我只是先测试了我的,然后是 OP 的 :),因此将两者都放在那里。
  • @Neilaka.Duckie,我测试了两种语法,都可以正常工作,如我的回答所示。
猜你喜欢
  • 2015-04-07
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 2023-03-10
  • 2020-08-28
相关资源
最近更新 更多