PHP语法错误?输出资源 id #3

标签 php mysql

<?php
$link = mysql_connect('localhost', 'user', 'password');
if (!$link) {
die('Failed to connect to MySQL: ' . mysql_error());
}
$db_selected = mysql_select_db('mysql', $link);
if (!$db_selected) {
  die ("Can\'t use db : " . mysql_error());
}
$query = sprintf("SELECT church_id FROM hours 
         WHERE day_of_week = DATE_FORMAT(NOW(), '%w') AND 
         CURTIME() BETWEEN open_time AND close_time",
    mysql_real_escape_string($day_of_week),
    mysql_real_escape_string($open_time),
    mysql_real_escape_string($close_time));
$result = mysql_query($query);

if (!$result) {
    $message = 'Invalid query: ' .mysql_error() . "\n";
    $message .= 'Whole query: ' .$query;
    die($message);
}

while ($row = mysql_fetch_array($result)) {
    echo $row['shop_id'];
}

mysql_free_result($result);
echo "end";
?>

我知道 SQL 查询通过复制/粘贴到 phpmyadmin 中来工作。我希望脚本只输出一个 shop_id 或一系列 shop_id。现在它输出资源 id #3。我查找了如何修复它,mysql_fetch_array 应该是答案。我做错了什么?

最佳答案

我正在查看您的查询,我只看到您选择了 Church_id 并且您想要输出 shop_id,您应该将其包含在您的选择中,如下所示:

$query = sprintf("SELECT church_id, shop_id FROM hours WHERE day_of_week = DATE_FORMAT(NOW(), '%w') AND CURTIME() BETWEEN open_time AND close_time",
    mysql_real_escape_string($day_of_week),
    mysql_real_escape_string($open_time),
    mysql_real_escape_string($close_time));
$result = mysql_query($query);

关于PHP语法错误?输出资源 id #3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073958/

相关文章:

php - 在 PHP 中通过多个表单字段提交操作 HTML 表数据

javascript - 每次单击 jQuery 中的一个子 li 时,如何获取父 li?

php - 基于一组可变的比较点检索 MySQL 记录

php - 数据库中的查询获取

php - 更新多行 Mysql Php

php - Laravel:如何在 Laravel 查询构建器中使用派生表/子查询

PHP - Lithium框架如何更改/切换默认布局

mysql - 在 where 子句中使用参数的 Superset sql 查询编辑器

php - 从同一列等于两个不同事物的表中选择?

mysql - 在按周分组的 2 个日期之间在 MYSQL 中生成报告