繁体   English   中英

为什么我的查询没有输出预期的结果?

[英]Why isn't my query outputting the expected results?

    CREATE TABLE IF NOT EXISTS `Channels` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `commercial` tinyint(1) NOT NULL DEFAULT '0',
  `usrid` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


INSERT INTO `Channels` (`id`, `name`, `commercial`, `usrid`) VALUES
(2, 'ORF 1', 0, 0);

PHP:

<?php
  if (isset($_POST['name'])){
    mysql_connect("localhost", "test", "test") or die(mysql_error());
    mysql_select_db("test") or die(mysql_error());
    $tmp = mysql_query("SELECT commercial 
                          FROM Channels 
                         WHERE name='".mysql_real_escape_string($_POST['name'])."'");
    $row = mysql_fetch_row($tmp);
    echo $row['commercial'];
  }
  else
  {
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
      <input name="name" type="text">
      <input type="submit" name="submit" value="submit" >
    </form>
    <?php
  }
?>

提交“ ORF 1”时没有输出。

学习使用基本的调试技术至关重要:

代替这个:

$tmp = mysql_query("SELECT commercial FROM Channels WHERE 
    name='".mysql_real_escape_string($_POST['name'])."'");
$row = mysql_fetch_row($tmp);
echo $row['commercial'];

做这个:

$tmp = mysql_query("SELECT commercial FROM Channels WHERE 
    name='".mysql_real_escape_string($_POST['name'])."'");

// Make sure the query was successful
if (false === $tmp) {
   die("Query failed: " . mysql_error());
}

$row = mysql_fetch_row($tmp);

// Don't assume a row was returned
var_dump($row);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM