mysqli 存储 php 变量而不是值
Posted
技术标签:
【中文标题】mysqli 存储 php 变量而不是值【英文标题】:mysqli stores php variable not value 【发布时间】: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 = 语句之前回显它以验证它没有在页面顶部之后的某个地方搞砸? 【参考方案1】:查询行需要是这样的:
$sql = "INSERT INTO `photos` (`id`,`owner`,`url`) VALUES ('id','$id','$thumb_image_location')";
您的语法也可以正常工作,如 here 所见
这就是我的语法的工作原理,here
注意:两者的工作原理相同,因此仍在尝试找出 OP 代码中的问题。
【讨论】:
这样存储 $id 而不是值,但 url 仍然有效。 这看起来应该完全等同于 OP 正在使用的查询,尽管它确实需要更少令人眼花缭乱的报价跟踪(除非我在说计数时失败了)。 是的,我只是先测试了我的,然后是 OP 的 :),因此将两者都放在那里。 @Neilaka.Duckie,我测试了两种语法,都可以正常工作,如我的回答所示。以上是关于mysqli 存储 php 变量而不是值的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们不能直接从函数返回一个 mysqli 对象?对象必须先存储在变量中吗?