php - varchar 数据类型不显示长条目的结果

标签 php sql mysql

我正在开发一个应用程序来监控 IP 地址事件。我在 Ubuntu 12.04 上使用 LAMP 堆栈。在mysql数据库中,我创建了一个包含2列的表,ip和mac,数据类型均为varchar。我将一些数据放入表中,当我使用 select * from table 时,这就是结果

 ip                    mac
 1                       2
1.10.0.0.43       00 19 78 D3 R5 ED
8.9                 32.22

中间行是我期望来自交换机的条目的样子。我将第一行和第三行放在测试目的。

我写了一段php代码来进行匹配和检索,如下

<?php

    $var = $_REQUEST['IP'];    
    echo $var;

    mysql_connect( "localhost", "root", "mysql" ) or die("Unable to connect to the database");
    mysql_select_db( "syslog" );

    $result = mysql_query( "SELECT ip,mac FROM arp_table where ip=$var"  );

    $row = mysql_fetch_row( $result );

    print_r( $row );

?>

当我在表单中输入1时,结果是好的,形式为1 Array([0]=>1[1]=>2)当我输入8.9时,输出也正常。但是当我输入1.10.0.0.43时,输出只是变量的回显,没有检索到数组。有人知道为什么会这样吗?

最佳答案

这是因为您没有在 $var 周围使用引号。在 SQL 中使用字符串时,需要用引号引起来,例如:

SELECT ip,mac FROM arp_table where ip='$var';

如果它们没有被引用,那么您的值将由 MySQL 解释,并自动转换为(例如)整数,因为该值看起来像整数 1/2 ...等等..

关于php - varchar 数据类型不显示长条目的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18613479/

相关文章:

php - 在 Codeigniter Framework 中插入(不执行)之前打印查询

php - 为新站点用户自动创建自定义页面(或 URL) - PHP

php - 如何将多个ID传递到jobCart页面?

php - 使用 PHP -> SSH -> MYSQLDUMP 复制远程 MySQL DB 失败时未收到错误代码

c++ - 我需要一个 SQL 服务器来使用 Qt 的 QtSql 库吗?

java - 在mysql中将mysql日期格式转换为dd-mmm-yyyy

javascript - 如何使用php重定向按钮点击

php - 在wamp上使用php从mysql数据库中随机选择

sql - 使用 SQL 确保随机数不相同

mysql - 创建插入函数