关于php–PDO相当于mysql_num_rows或mssql_num_rows和php7pdo的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于mysql_affected_rows和m
关于php – PDO相当于mysql_num_rows或mssql_num_rows和php7 pdo的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于mysql_affected_rows和mysql_num_rows、mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数1是资源、mysql_num_row()一直替0?、mysql_num_rows VS COUNT 效率问题分析等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- php – PDO相当于mysql_num_rows或mssql_num_rows(php7 pdo)
- mysql_affected_rows和mysql_num_rows
- mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数1是资源
- mysql_num_row()一直替0?
- mysql_num_rows VS COUNT 效率问题分析
php – PDO相当于mysql_num_rows或mssql_num_rows(php7 pdo)
我知道之前已经问过这个问题,但似乎解决方案已经针对所提出的问题.
我有一个包含数百个实例的代码库,其中使用了mssql_num_rows.
代码示例:
$db->execute($sql);
if ($db->getRowsAffected() > 0) {
$total = $db->fetch();
在db类中:
$this->rowsaffected = mssql_num_rows($this->query_result);
>我无法创建通用SELECT count(*)FROM表查询,因为我有太多特定的select语句.
>我可以运行preg_replace来删除SELECT和FROM之间的所有内容,然后用COUNT(*)替换并运行第二个查询,但这假设所有查询都以某种方式设置.
>我可以首先fetchAll然后count()结果,但这意味着升级if语句的所有实例.
那么如果人们将他们的代码更新为PDO,那么替换为* _num_rows函数的最佳方法是什么呢?不是解决特定问题的东西,而是取代* _num_rows功能的东西.如果那是不可能的,那之前是什么让它成为可能呢?
解决方法:
如果要计算行数,可以使用PDO执行此操作:
$sql = 'select * from users';
$data = $conn->query($sql);
$rows = $data->fetchAll();
$num_rows = count($rows);
在PDO中使用SELECT语句时无法直接计算行数.
mysql_affected_rows和mysql_num_rows
以上就介绍了mysql_affected_rows和mysql_num_rows,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数1是资源
我正在尝试从 MySQL 表中选择数据,但收到以下错误消息之一:
mysql_fetch_array() 期望参数 1 是资源,给定的布尔值
这是我的代码:
$username = $_POST[''username''];$password = $_POST[''password''];$result = mysql_query(''SELECT * FROM Users WHERE UserName LIKE $username'');while($row = mysql_fetch_array($result)) { echo $row[''FirstName''];}
答案1
小编典典查询可能由于各种原因而失败,在这种情况下 mysql_* 和 mysqli
扩展都false
将从各自的查询函数/方法返回。您需要测试该错误情况并相应地处理它。
mysql_* 扩展名 :
注意 mysql_函数已被弃用,并已在 php 版本 7 中删除。
在传递$result
给mysql_fetch_array
.
你会发现是false
因为查询失败。mysql_query
有关可能的返回值和如何处理它们的建议,请参阅文档。
$username = mysql_real_escape_string($_POST[''username'']);$password = $_POST[''password''];$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE ''$username''");if($result === FALSE) { die(mysql_error()); // TODO: better error handling}while($row = mysql_fetch_array($result)){ echo $row[''FirstName''];}
mysqli 扩展
程序风格 :
$username = mysqli_real_escape_string($mysqli, $_POST[''username'']);$result = mysqli_query($mysqli, "SELECT * FROM Users WHERE UserName LIKE ''$username''");// mysqli_query returns false if something went wrong with the queryif($result === FALSE) { yourErrorHandler(mysqli_error($mysqli));}else { // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach foreach( $result as $row ) { ...
oo 风格 :
$username = $mysqli->escape_string($_POST[''username'']);$result = $mysqli->query("SELECT * FROM Users WHERE UserName LIKE ''$username''");if($result === FALSE) { yourErrorHandler($mysqli->error); // or $mysqli->error_list}else { // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach foreach( $result as $row ) { ...
使用准备好的语句:
$stmt = $mysqli->prepare(''SELECT * FROM Users WHERE UserName LIKE ?'');if ( !$stmt ) { yourErrorHandler($mysqli->error); // or $mysqli->error_list}else if ( !$stmt->bind_param(''s'', $_POST[''username'']) ) { yourErrorHandler($stmt->error); // or $stmt->error_list}else if ( !$stmt->execute() ) { yourErrorHandler($stmt->error); // or $stmt->error_list}else { $result = $stmt->get_result(); // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach foreach( $result as $row ) { ...
这些示例仅说明应该做什么(错误处理),而不是如何去做 。 输出 HTML 时不应使用生产代码ordie
,否则它将(至少)生成无效的
HTML。此外,不应向非管理员用户显示数据库错误消息,因为它会泄露太多信息。
mysql_num_row()一直替0?
$reback = 0 ;
$name = $_GET["name"];
$password = $_GET["password"];
$conn = mysql_connect("localhost","root","");
if(!$conn){
die("Connot connect server:".mysql_error());
}
mysql_select_db("db_music",$conn) or die("Cannot select database:".mysql_errno());
mysql_query("set names gb2312");
$sql = "select * from tb_user where name=''".$name."''and pd=''".$password."''";
echo $sql;
// echo $sql;
$result = mysql_query($sql,$conn);
$num = mysql_num_rows($result);
mysql_close($conn);
// echo $num;
if($num ==1){
$reback = "欢迎".$name."用户登录!";
}else{
$reback = "用户名或密码错误!";
}
echo $reback;
?>
数据库中存在正确的数据,可是 echo $num一直为0;
$sql能够正确输出,检查正确,而且在mysql里单独运行可以有查询结果。。。。。。
求大神指点。。。。
------解决方案--------------------
echo $sql;
贴出结果
------解决方案--------------------
你是怎么确定的确是的。
mysql_num_rows VS COUNT 效率问题分析
MysqL_num_rows 和 count( ) 都能统计总数,那个能好一点呢?
或者
分别什么时候用num_rows 和 count( )呢 一个直观的对比
测试数据:
条数:139764条
数据表大小:500M 结果:
fetch_num_rows 用时:35.272329092026
count() 用时:0.071956872940063 如果单纯统计数量 当然是count()
fetch_num_rows必须遍历数据库以后才能得出 效率低于count(*)
关于php – PDO相当于mysql_num_rows或mssql_num_rows和php7 pdo的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于mysql_affected_rows和mysql_num_rows、mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数1是资源、mysql_num_row()一直替0?、mysql_num_rows VS COUNT 效率问题分析等相关内容,可以在本站寻找。
本文标签: