【问题标题】:php mysql query returns nothing, phpmyadmin with same query returns resultphp mysql查询不返回任何内容,具有相同查询的phpmyadmin返回结果
【发布时间】:2013-10-05 00:45:33
【问题描述】:

我正在尝试删除文件或将行复制到新表中,具体取决于 $_GET。 $_GET 工作正常,我没有包括所有代码,我知道它不相关。 表副本有效,但是当 $_GET 是不同的值时调用的 select 语句不返回任何内容,除非我将查询直接复制到 phpmyadmin 中。

基本代码:

$pID = $_GET['pID'];

$con = mysqli_connect("...","...","...","...");

以下作品:

$query = 'INSERT INTO `photos` (`id`, `photo1`, `photo2`, `demographic_id`)
SELECT `id`, `photo1`, `photo2`, `demographic_id`
FROM `photos_queue`
WHERE `photos_queue`.`demographic_id` = '.$pID;

mysqli_query($con, $query);

这不是:

$query = 'SELECT `photo1` FROM `photos_queue` WHERE `demographic_id` = '.$pID;
$result = mysqli_query($con, $query);
print($result);
unlink($result);

我已经打印了 $query 并且它的值是有效的;我可以直接复制到phpmyadmin里面就可以了。

【问题讨论】:

  • 你有没有回显 mysqli_error() 看看它是否出错了?
  • 还有,$pID的值是多少?
  • 您似乎忘记调用mysqli_fetch_XXX() 以从查询中获取行。
  • user2722375:创建这些连接时经常看到的一个好习惯是$con = mysqli_connect("...","...","...","...") or die(mysqli_error());。显然,对die() 的调用会杀死脚本,因此我通常将其用于调试...但我认为它会在这里对您有所帮助。

标签: php mysql


【解决方案1】:

mysqli_query() 不返回表数据,它只是返回可用于获取它的资源。你需要做的:

$result = mysqli_query($con, $query) or die (mysqli_error($con));
$row = mysqli_fetch_assoc($result);
$filename = $row['photo1'];
print($filename);
unlink($filename);

【讨论】:

  • 啊哈,就是这样!我查看了另一个给我数据的文件,但没有注意到我跳过了 mysqli_fetch_assoc/mysqli_fetch_row 部分。谢谢!
  • 不幸的是它仍然没有删除文件。 photo1 的值为“文件夹名/文件名.jpg”。我尝试在前面加上“mysite.com”,所以 $filename 的值将是“mysite.com/foldername/filename.jpg”,但它仍然没有删除。
  • 这是一个完全不相关的问题。我不知道您为什么要在域名前面加上文件名,而不是 URL。如果文件位于文档根目录之外,则需要添加该路径。找到创建文件的脚本,看看它放在哪里。
  • "foldername/filename.jpg" 是我用作 的 src 的值,它工作正常。它位于根文件夹中名为“foldername”的文件夹中。
  • 可能在前面加上$_SERVER['DOCUMENT_ROOT']?我是来帮你处理 SQL 的,我真的猜不出你的网络服务器的布局。
【解决方案2】:
($row = mysqli_fetch_array($result)

这应该放在后面,

$result = mysqli_query($con, $query);

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多