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

标签 php html mysql

这个问题在这里已经有了答案:





mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expects parameter 1 to be resource

(31 个回答)


8年前关闭。




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

<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>

它连接的表基本上是两列两行,显示为:
**ref** --- **num**

123 --- 32.74

83A --- 29.54

当我在文本字段中输入 123 并按提交时,它按预期执行并显示 32.74 但是,当我将 83A 放入文本框中并按提交时,我收到错误:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\testing\test.php on line 20

我检查了数据库,ref 列设置为 VCHAR(4)并且 num 设置为 DECIMAL(4,2) .

最佳答案

这个特定的问题是因为你没有引用你的字符串引起的。

代替:

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

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

然而 ,我强烈建议您使用准备好的语句作为 mysql_* 切换到 PDO 或 mysqli函数已被弃用,并且您遇到了严重的 sql 注入(inject)问题。

关于php - mysql 无法识别文本和数字组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21838445/

相关文章:

javascript - 检查MySQL数据是否已存在,如果不存在则INSERT。 [PHP+jQuery Ajax]

php - 试图删除我的表格中显示的数据

Mysql 表有 2000 万行,统计数据已经过时

php - 多个数据库、一种学说连接和一个不服从的 bundle

php - Magento 模型保存方法更新记录而不是插入

php mysql 更新 1 查询而不是更多

javascript - 当此跨度值更改时,如何触发事件?

html - 理解单类/多类模式

php - Cakephp如何删除链接上的下划线

mysql - varchar的后果是什么?