当前位置:论坛首页 > Linux面板 > 求助

【待反馈】小白求助

发表在 Linux面板2021-3-18 11:26 [复制链接] 16 4545

小白求助一下
终端进数据库没问题,就这两个地方我也不懂哪儿不对...
QQ截图20210318111950.png
QQ截图20210318112047.png
使用道具 举报 只看该作者 回复
发表于 2021-3-18 12:04:39 | 显示全部楼层
localhost 改成127.0.0.1试一下,后面的就是,数据库用户名,密码,数据库名
使用道具 举报 回复 支持 反对
发表于 2021-3-18 12:36:46 | 显示全部楼层
铭心刻骨 发表于 2021-3-18 12:04
localhost 改成127.0.0.1试一下,后面的就是,数据库用户名,密码,数据库名

还是不行
使用道具 举报 回复 支持 反对
发表于 2021-3-18 14:42:22 | 显示全部楼层
使用的是什么版本PHP?试试用pdo_mysql看看。
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:06:34 | 显示全部楼层
谢花郎 发表于 2021-3-18 14:42
使用的是什么版本PHP?试试用pdo_mysql看看。

用的是5.6
pdo_mysql咋用...
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:15:40 | 显示全部楼层
宝塔用户_pwtvzb 发表于 2021-3-18 15:06
用的是5.6
pdo_mysql咋用...

我在网上找了一段代码如下,我可以直接把conn.php里的内容替换成这个吗
  1. <?php

  2. $db = array(
  3.     'host' => '127.0.0.1',         //设置服务器地址
  4.     'port' => '3306',              //设端口
  5.     'dbname' => 'test',             //设置数据库名      
  6.     'username' => 'root',           //设置账号
  7.     'password' => 'yangji0321',      //设置密码
  8.     'charset' => 'utf8',             //设置编码格式
  9.     'dsn' => 'mysql:host=127.0.0.1;dbname=test;port=3306;charset=utf8',   //这里不知道为什么,也需要这样再写一遍。
  10. );

  11. //连接
  12. $options = array(
  13.     PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //默认是PDO::ERRMODE_SILENT, 0, (忽略错误模式)
  14.     PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 默认是PDO::FETCH_BOTH, 4
  15. );

  16. try{
  17.     $pdo = new PDO($db['dsn'], $db['username'], $db['password'], $options);
  18. }catch(PDOException $e){
  19.     die('数据库连接失败:' . $e->getMessage());
  20. }

  21. //或者更通用的设置属性方式:
  22. //$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    //设置异常处理方式
  23. //$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);   //设置默认关联索引遍历

  24. echo '<pre/>';

  25. //1 查询

  26. //1)使用query
  27. $stmt = $pdo->query('select * from user limit 2'); //返回一个PDOStatement对象

  28. //$row = $stmt->fetch(); //从结果集中获取下一行,用于while循环
  29. $rows = $stmt->fetchAll(); //获取所有

  30. $row_count = $stmt->rowCount(); //记录数,2
  31. print_r($rows);







  32. echo '<br>';

  33. //2)使用prepare 推荐!
  34. $stmt = $pdo->prepare("select * from user where name = ? and age = ? ");
  35. $stmt->bindValue(1,'allen');
  36. $stmt->bindValue(2,20);
  37. $stmt->execute();  //执行一条预处理语句 .成功时返回 TRUE, 失败时返回 FALSE
  38. $rows = $stmt->fetchAll();
  39. $row_count = $stmt->rowCount(); //记录数,2
  40. print_r($rows);
  41. print_r($row_count);



  42. echo '<br>';




  43. //2 新增、更新、删除
  44. //A.1)普通操作
  45. //$count  =  $pdo->exec("insert into user(name,gender,age)values('test',2,23)"); //返回受影响的行数
  46. //echo $pdo->lastInsertId();

  47. //$count  =  $pdo->exec("update user set name='test2' where id = 15"); //返回受影响的行数
  48. //$count  =  $pdo->exec("delete from  user where id = 15"); //返回受影响的行数


  49. //A.2)使用prepare 推荐!

  50. $stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)");
  51. $stmt->bindValue(1, 'test');
  52. $stmt->bindValue(2, 2);
  53. $stmt->bindValue(3, 23);
  54. $stmt->execute();
  55. $count = $stmt->rowCount();//受影响行数
  56. echo 'prepare方法影响行数:'.$count;  
  57. echo '<br>';


  58. //A.3)使用prepare 批量新增

  59. $stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)");
  60. $stmt->bindParam(1, $name);
  61. $stmt->bindParam(2, $gender);
  62. $stmt->bindParam(3, $age);

  63. $data = array(
  64.     array('t1', 1, 22),
  65.     array('t2', 2, 23),
  66. );

  67. foreach ($data as $vo){
  68.     list($name, $gender, $age) = $vo;
  69.     $stmt->execute();
  70. }




  71. //B)更新操作
  72. echo '<br>';

  73. $stmt = $pdo->prepare("UPDATE `user` SET `age`=? WHERE (`name`= ? )");
  74. $stmt->bindValue(1, '20');
  75. $stmt->bindValue(2, 'allen');
  76. $num = $stmt->execute();
  77. $count = $stmt->rowCount();//受影响行数
  78. echo '更新操作影响行数:'.$count;  









  79. //删除操作
  80. $stmt = $pdo->prepare("DELETE FROM `user` WHERE (`name`= ? )");
  81. $stmt->bindValue(1, 't1');
  82. $num = $stmt->execute();
  83. $count = $stmt->rowCount();//受影响行数
  84. echo '删除操作影响行数:'.$count;  




  85. # 【示例5:统计数据】:统计company表有多少条数据
  86. echo '<br>';

  87. $num = $pdo->query("select count(*) from user");
  88. $count = $num->fetchColumn();
  89. echo '共有数据:【'.$count.'】条';




  90. ?>


  91. pdo::query()方法
  92. 当执行返回结果集的select查询时,或者所影响的行数无关紧要时,应当使用pdo对象中的query()方法.
  93. 如果该方法成功执行指定的查询,则返回一个PDOStatement对象.
  94. 如果使用了query()方法,并想了解获取数据行总数,可以使用PDOStatement对象中的rowCount()方法获取.

  95. pdo::exec()方法
  96. 当执行insert,update,delete没有结果集的查询时,使用pdo对象中的exec()方法去执行.
  97. 该方法成功执行时,将返回受影响的行数.注意,该方法不能用于select查询.




  98. PDO事务:

  99. $pdo->beginTransaction();//开启事务处理

  100. try{
  101.     //PDO预处理以及执行语句...
  102.    
  103.     $pdo->commit();//提交事务
  104. }catch(PDOException $e){
  105.     $pdo->rollBack();//事务回滚
  106.    
  107.     //相关错误处理
  108.     throw $e;
  109. }



复制代码


使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:19:39 | 显示全部楼层
宝塔用户_pwtvzb 发表于 2021-3-18 15:15
我在网上找了一段代码如下,我可以直接把conn.php里的内容替换成这个吗

...

pdo的脚本,你可以试试

  1. <?php
  2. $servername = "localhost";
  3. $username = "数据库用户";
  4. $password = "数据库密码";

  5. try {
  6.     $conn = new PDO("mysql:host=$servername;", $username, $password);
  7.     echo "连接成功";
  8. }
  9. catch(PDOException $e)
  10. {
  11.     echo $e->getMessage();
  12. }
  13. ?>
复制代码
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:25:23 | 显示全部楼层
谢花郎 发表于 2021-3-18 15:19
pdo的脚本,你可以试试

这个端口要改吗,我没开那个端口
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:31:02 | 显示全部楼层
谢花郎 发表于 2021-3-18 15:19
pdo的脚本,你可以试试

好像不太行的样子
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:31:15 | 显示全部楼层
宝塔用户_pwtvzb 发表于 2021-3-18 15:25
这个端口要改吗,我没开那个端口

开什么端口?数据库的3306端口吗,如果你要外网远程的话,那你就需要放行。
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:35:41 | 显示全部楼层

怎么到你那里就不行了?我这边都可以
21.png
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:53:46 | 显示全部楼层
谢花郎 发表于 2021-3-18 15:35
怎么到你那里就不行了?我这边都可以

BPWBAYXKFCFL%S%EU1`F.png
现在就是这个样子
使用道具 举报 回复 支持 反对
发表于 2021-3-18 15:57:50 | 显示全部楼层
谢花郎 发表于 2021-3-18 15:35
怎么到你那里就不行了?我这边都可以

这一段有问题吗
  1. <?php
  2. /*
  3. 版权信息可删除,但请勿修改
  4. Copyright © 2020 by m@mcloc.cn
  5. */
  6. $type = $_REQUEST['type'];
  7. $love_id = $_REQUEST['id'];
  8. include "conn.php";
  9. $sql = "SELECT COUNT(*) FROM love_sentence";//love_sentence为数据表
  10. $result_count = $conn->query($sql);
  11. $love_count_arr = $result_count->fetch_all();
  12. $love_count = $love_count_arr[0][0];

  13. if ($type == "json") {
  14.     if($love_id){
  15.         $sql2 = "SELECT * FROM love_sentence WHERE id=$love_id";
  16.         $result_byId = $conn->query($sql2);
  17.         $result_arr_byId = mysqli_fetch_assoc($result_byId);
  18.         $return = $result_arr_byId;
  19.         $return = json_encode($return);
  20.     }else{
  21.         $index_rand = mt_rand(0, $love_count);
  22.         $sql3 = "SELECT * FROM love_sentence WHERE id=$index_rand";
  23.         $result_byRandId = $conn->query($sql3);
  24.         $result_arr_byRandId = mysqli_fetch_assoc($result_byRandId);
  25.         $return = $result_arr_byRandId;
  26.         $return = json_encode($return);
  27.     }
  28. }
  29. if ($type == "string" || $type == "") {
  30.     if($love_id){
  31.         $sql2 = "SELECT * FROM love_sentence WHERE id=$love_id";
  32.         $result_byId = $conn->query($sql2);
  33.         $result_arr_byId = mysqli_fetch_assoc($result_byId);
  34.         $return = $result_arr_byId["data"];
  35.     }else{
  36.         $index_rand = mt_rand(0, $love_count);
  37.         $sql3 = "SELECT * FROM love_sentence WHERE id=$index_rand";
  38.         $result_byRandId = $conn->query($sql3);
  39.         $result_arr_byRandId = mysqli_fetch_assoc($result_byRandId);
  40.         $return = $result_arr_byRandId["data"];
  41.     }
  42. }

  43. echo $return;
  44. ?>
复制代码


使用道具 举报 回复 支持 反对
发表于 2021-3-18 16:01:24 | 显示全部楼层
谢花郎 发表于 2021-3-18 15:31
开什么端口?数据库的3306端口吗,如果你要外网远程的话,那你就需要放行。 ...

大佬对不起..不是故意在刷的,现在提示了
{"readyState":4,"responseText":"连接成功<br />\n<b>Fatal error</b>:  Call to a member function fetch_all() on boolean in <b>/www/wwwroot/1.XX.XXX.XXX/php/love.php</b> on line <b>11</b><br />\n","status":200,"statusText":"OK"}

使用道具 举报 回复 支持 反对
发表于 2021-3-18 16:05:39 | 显示全部楼层
宝塔用户_pwtvzb 发表于 2021-3-18 16:01
大佬对不起..不是故意在刷的,现在提示了
{"readyState":4,"responseText":"连接成功\nFatal error:  Cal ...

这不是显示连接上了吗?状态返回也是200
使用道具 举报 回复 支持 反对
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表