GVKun编程网logo

php – PDO相当于mysql_num_rows或mssql_num_rows(php7 pdo)

1

关于php–PDO相当于mysql_num_rows或mssql_num_rows和php7pdo的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于mysql_affected_rows和m

关于php – PDO相当于mysql_num_rows或mssql_num_rowsphp7 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)

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

mysql_affected_rows()取得前一次 MySQL 操作所影响的记录行数.一般UPDATE, DELETE操作

mysql_num_rows()

返回结果集中行的数目,一般是SELECT操作

以上就介绍了mysql_affected_rows和mysql_num_rows,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数1是资源

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 中删除。

在传递$resultmysql_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?

mysql_num_row()一直替0?

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 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_rowsphp7 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 效率问题分析等相关内容,可以在本站寻找。

本文标签: