Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql无法识别文本和数字组合_Php_Html_Mysql - Fatal编程技术网

Php mysql无法识别文本和数字组合

Php mysql无法识别文本和数字组合,php,html,mysql,Php,Html,Mysql,我在下面写了一个简单的问题示例: <html> <body> <form action="test.php" method="POST"> <input type="text" name="refValue"> <input type="submit" name = "go"> </form> <?php

我在下面写了一个简单的问题示例:

<html>
    <body>
        <form action="test.php" method="POST">

        <input type="text" name="refValue">

        <input type="submit" name = "go">
        </form>

            <?php
            $sql_connect = mysql_connect("localhost","root","root") or die ("no connect");
            $sql_data = mysql_select_db("suraj", $sql_connect) or die ("no database");

            $refVal = $_POST['refValue'];
            $SP = mysql_query("SELECT * FROM data WHERE ref=".$refVal);

            while ($col = mysql_fetch_array($SP)) { 
            echo  $col['num'] ; 
            }; 
            ?>
    </body>
    </html>
当我在文本字段中输入123并按submit时,它会按预期操作并显示32.74。然而,当我在文本框中输入83A并按submit时,我得到一个错误:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\testing\test.php on line 20

我检查了数据库,ref列设置为VCHAR4,num设置为DECIMAL4,2。

此特定问题是由于您没有引用字符串而导致的

而不是:

$SP = mysql_query("SELECT * FROM data WHERE ref=".$refVal);
你需要:

$SP = mysql_query("SELECT * FROM data WHERE ref='".$refVal."'");

但是,我强烈建议您使用prepared语句切换到PDO或mysqli,因为mysql_*函数已被弃用,并且存在严重的sql注入问题。

首先打印查询并手动在数据库中运行。我认为query/$refVal返回空。你确定$refVal不是空的吗?谢谢,你是正确的,我尝试从ref=123的数据中选择num,效果很好,但当我尝试从ref=83A的数据中选择num时,我得到以下错误:1054-WHERE子句中的未知列“83A”跟随@jeroen的答案。太好了谢谢,现在可以用了。
$SP = mysql_query("SELECT * FROM data WHERE ref='".$refVal."'");