PDO语句错误php mysql

时间:2015-10-18 17:06:33

标签: php mysql pdo

我正在尝试从mysql表中获取产品列表。我正在尝试以下代码,但它无法正常工作。请给我任何建议。

  

致命错误:调用未定义的方法mysqli_stmt :: rowCount()

代码

$query = "SELECT id, name, price FROM female_products ORDER BY name";
$stmt = $con->prepare( $query );
$stmt->execute();
$num = $stmt->rowCount();
if($num>0)
{
//my work here
}

CONFIG.PHP

 $db_username = 'root';
$db_password = '';
$db_name = 'ecommerce';
$db_host = 'localhost';

try {
$con  = new mysqli($db_host, $db_username, $db_password,$db_name);

 }catch(PDOException $exception){
echo "Connection error: " . $exception->getMessage();
 }

1 个答案:

答案 0 :(得分:1)

假设你想要一个真正的PDO解决方案,而不是一个mysqli:

    try {
    $aOptions = array(  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
    // play around with options

    $dbh = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME.';charset=utf8', ''.DBUSER.'', ''.DBPWD.'',$aOptions); 
}
catch(PDOException $e) {
    echo $e->getMessage(); 
    // do something smarter then just echo error!
}


$sql = "SELECT id, name, price FROM female_products ORDER BY name";
$stmt = $dbh->query($sql);
$aArray = $stmt->fetchAll();

if(count($aArray) > 0){
    // do something
}
else{
   // empty result 
}

我个人认为PDO比mysqli更容易。 选项:你很快就会玩它,所以使用数组很方便。 你已经准备好了,但是你还没有使用准备好的声明吗? 如果此代码有效,请尝试查找hoe准备好的语句:防止SQL攻击的最佳防御之一!!

对于配置,我使用了常量,因此您需要在配置中定义主题。常量,因为它们在执行脚本时永远不会改变!