-
慕九州3222622
请问一下我这个为什么访问不到数据库,这是我的代码
$db = new mysqli('localhost', 'root', '', 'test');
$sql="select *from books";
$res=$db->query($sql);
echo json_encode(Array("success" => true,"data" => $res, "message" => "请求成功"));
这是用ajax得到的
{"success":true,"data":{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null},"message":"\u8bf7\u6c42\u6210\u529f"}
-
呼如林
<?php$dsn = 'mysql:dbname=test;host=localhost';$user = 'root';$password = 'root'; //mysql$db = new PDO($dsn, $user, $password);$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$slectsql=select 字段 from table where 字段=值(如果有条件的情况跟where);$stmt = $db->query($sql);$db->null;?>这个是其中一种方式(PDO),如果用于生产环境的换需要将上面代码修改为防dql注入方式,简单的来说就是prepare(),execute()分开执行,其中要查询的字段或者条件参数再执行的时候才传入,同时需要设置$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);。再有另外一种方式为php_mysqli,这种方式使用以及与PDO的区别可自行百度。目前主要使用的方式PDO。总的来说PHP要读取MYSQL某个字段,大致需要三步,第一步链接数据库的方式,第二步查询的语句准备以及执行,第三步断开数据库链接。
-
千巷猫影
查询成功了,但是你没有把查询的值赋给变量,所以你肯定得不到值,$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";$result=mysql_query($sql);while ($row = mysqli_fetch_assoc($result))//用myql_fetch_assoc函数取值,可以确保多行数据时能循环输出,mysql_fetch_array只能取得最前面的一行数据{echo $row['meta_value'];//输出你想要的字段值}
-
一只萌萌小番薯
$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";$result=mysql_query($sql);while ($row = mysql_fetch_array($result)) {echo $row["meta_value"]; //或者echo $row[0];也可以,因为这里你就查了这一个字段}
-
一只斗牛犬
$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";$result=mysql_query($sql);while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {echo $row["meta_value"];}