pdoを使ってsqlを操作する – PHP
追記
try{
$dsn = 'mysql:host=localhost; dbname=bitnami_wordpress;charset=utf8;';
$user = 'root';
$password = 'u****';
$dbh = new PDO($dsn, $user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
}catch(PDOException $e){
die($e->getMessage());
}
try{
$user = wp_get_current_user();
$user_login_id = $user -> ID;
$statement = $dbh->prepare("select * from wp_users where ID = :name");
$statement->execute(array(':name' => $user_login_id));
$row = $statement->fetchAll();
//print_r($row);
foreach ($row as $value) {
echo $value['ID'];
echo $value['user_login'];
echo $value['user_image'];
echo $value['user_email'];
}
}catch(PDOException $e){
die($e->getMessage());
}
dbに接続する
try {
$user = "root";
$pass = "pass";
$dbh = new PDO('mysql:host=localhost;dbname=db', $user, $pass);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
};
SELECT
$stmt = $dbh->prepare(" SELECT count(*) FROM `tb` WHERE name = :i ");
$stmt->execute(array("i"=>"$v"));
//値存在してる?
$number_of_rows = $stmt->fetchColumn();
if ($number_of_rows == 0) {
echo "値存在してない";
}else{
echo "値存在してる";
};
SELECT2
$q = $dbh->prepare("SELECT * tb WHERE name = :i");
$q->bindValue(':i', 'something');
$q->execute();
if ($q->rowCount() > 0){
$check = $q->fetch(PDO::FETCH_ASSOC);
$row_id = $check['id'];
echo $row_id;
// do something
}
//or
$q = $db->prepare("SELECT id FROM table WHERE forename = :forename and surname = :surname LIMIT 1");
$q->bindValue(':forename', 'Joe');
$q->bindValue(':surname', 'Bloggs');
$q->execute();
if ($q->rowCount() > 0){
$check = $q->fetch(PDO::FETCH_ASSOC);
$row_id = $check['id'];
// do something
}
UPDATA
$sql = 'update tb set set_column =:set_name where where_column = :where_value';
$stmt = $dbh -> prepare($sql);
$stmt->bindParam(':set_name', $update_set_name, PDO::PARAM_STR);
$stmt->bindParam(':where_value', $update_where_value, PDO::PARAM_STR);
$stmt->execute();
INSERT
$stmt = $dbh -> prepare("INSERT INTO tb (column_one, column_tow)
VALUES(:value_one, :value_tow)");
$stmt->bindParam(':value_one', $value_one, PDO::PARAM_STR);
$stmt->bindParam(':value_tow', $value_tow, PDO::PARAM_STR);
$stmt->execute();