<?php
$db_host="localhost";
$db_name="project1";
$db_user="root";
$db_password="";

$dsn="mysql:host=$db_host;db_name=$db_name";
$db=new PDO($dsn,$db_user,$db_password);
var_dump($db);
$sql="SELECT * from `user`"
."WHERE 'gender'=?";
$sth=$db->prepare($sql);
var_dump($sth);
$return=$sth->execute(array('male'));
?>
代码是这样的,运行后显示
object(PDO)[1]
object(PDOStatement)[2]
  public 'queryString' => string 'SELECT * from 'user'WHERE 'gender'=?' (length=36)
boolean false

解决方案 »

  1.   

    var_dump($sql);
    看看
      

  2.   

    @A9925  string 'SELECT * from 'user'WHERE 'gender'=?' (length=36)
    显示的是这个
      

  3.   

    @xuzuning 错了错了,是查询不了,这个语法有错误么?
      

  4.   

    查看错误信息用
    print_r($db->errorInfo);

    print_r($sth->errorInfo);
      

  5.   

    print_r($sth->errorInfo());  就能得到
    Array
    (
        [0] => 00000
        [1] => 1046
        [2] => No database selected
    )说你没选择数据库,仔细一看,是你 $dsn="mysql:host=$db_host;db_name=$db_name"; 这句写错了,应该改为:
    $dsn="mysql:host=$db_host;dbname=$db_name";还有SQL也有错误,更正为:
    $sql="SELECT * from `user`"
    ." WHERE `gender`=?";
      

  6.   

    $sql="SELECT * from `user`"
    ."WHERE 'gender'=?";你的不是查询吗,插入使用 insert into 命令。