gpt4 book ai didi

php - mysql_num_rows() 输入验证

转载 作者:行者123 更新时间:2023-11-29 06:15:09 25 4
gpt4 key购买 nike

我正在向 mysql 数据库插入一些值,在插入之前,我想在允许插入之前检查输入字段之一是否具有数据库中已存在的值。

当我运行脚本时,出现此错误:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

并且错误指向我的 PHP 中的这一行:

if(mysql_num_rows($result) > 0)

这是 PHP:

$qry = "SELECT * FROM videos WHERE tape_no='$tape_no'";
$result = $dbLink->query($qry) or die (mysql_error());
if($result) {
if(mysql_num_rows($result) > 0)
{
echo '<html>';
echo '<head>';
echo '<link href="/module.css" rel="stylesheet type="text/css" />';
echo '</head>';
echo '<body>';
echo '<h1>Error</h1>';
echo '<h3>The Tape Number That You Have Entered is a Duplicate, Please Choose Another Tape Number</h3>';
echo '<FORM><INPUT TYPE="BUTTON" class="bluebutton" VALUE="Go Back" ONCLICK="history.go(-1)"></FORM>';
echo '</body>';
echo '</html>';
}
@mysql_free_result($result);
}

我引用的列是否需要具有某种数据类型(即整数)? varchar 列类型在这里可以工作吗?

最佳答案

简介

PHP 附带了两个不同 MySQL 特定的 API 扩展:

  • > MySQL ,仅支持过程式(mysql_query());
  • MySQLi ,支持面向对象风格(mysqli::query())和过程风格(mysqli_query());

  • 还有与供应商无关的抽象层,例如 PDO .

<小时/>

你的问题

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

好吧,这不是一个。

if(mysql_num_rows($result) > 0)

期望$result是通过MySQL系列函数获得的结果资源。

但是,在您的代码中,它很可能是其他扩展的结果。除非您编写了一些有漏洞的抽象层,否则您将混合两种不同的扩展!

(您在使用 mysql_free_result($result) 时也会遇到同样的问题。无论您使用哪个扩展,请阅读文档。)

<小时/>

您的解决方案

如果使用 MySQLi,请尝试:

if ($result->num_rows > 0)

如果使用 PDO,请尝试:

if ($result->rowCount > 0)

关于php - mysql_num_rows() 输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com