[SQL] SQL 행이 PHP 존재하는지 확인
SQLSQL 행이 PHP 존재하는지 확인
나는 PHP와 MySQL을 사용하고 있는데 나는이 (의사) 같은 것을 할 필요가 :
if (sql row exists where username='bob')
{
// do this stuff
}
해결법
-
==============================
1.당신은 MySQL 데이터베이스를 사용하는 경우, 다음을 사용합니다 -
당신은 MySQL 데이터베이스를 사용하는 경우, 다음을 사용합니다 -
$query = "SELECT username from my_table where username='bob'"; $result = mysql_query($query); if(mysql_num_rows($result) > 0) { // row exists. do whatever you would like to do. }
당신이 PDO (PHP 데이터 개체)를 사용하려는 경우 알렉스가 제안, 다음 코드를 사용합니다 -
$dbh = new PDO("mysql:host=your_host_name;dbname=your_db_name", $user, $pass); $stmt = $dbh->prepare("SELECT username from my_table where username = ':name'"); $stmt->bindParam(":name", "bob"); $stmt->execute(); if($stmt->rowCount() > 0) { // row exists. do whatever you want to do. }
-
==============================
2.Sayem의 대답은 대부분의 upvotes을 가지고 있지만, 나는 그것이 PDO에 대한 잘못된 생각합니다.
Sayem의 대답은 대부분의 upvotes을 가지고 있지만, 나는 그것이 PDO에 대한 잘못된 생각합니다.
PHP는 워드 프로세서 :
대부분의 데이터베이스의 경우, PDOStatement :: rowCount의 ()은 SELECT 문에 의해 영향을받는 행의 수를 반환하지 않습니다. 대신, 사용 PDO :: 쿼리 () 의도 SELECT 문 같은 조건을 가진 SELECT COUNT (*) 문을 발행 한 후 반환되는 행의 수를 검색 할 수 PDOStatement :: fetchColumn ()를 사용합니다.
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100"; if ($res = $conn->query($sql)) { /* Check the number of rows that match the SELECT statement */ if ($res->fetchColumn() > 0) { /* Issue the real SELECT statement and work with the results */ $sql = "SELECT name FROM fruit WHERE calories > 100"; foreach ($conn->query($sql) as $row) { print "Name: " . $row['NAME'] . "\n"; } } /* No rows matched -- do something else */ else { print "No rows matched the query."; } } $res = null; $conn = null;
-
==============================
3.또 다른 방법
또 다른 방법
$user = "bob"; $user = mysql_real_escape_string($user); $result = mysql_query("SELECT COUNT(*) AS num_rows FROM my_table WHERE username='{$user}' LIMIT 1;"); $row = mysql_fetch_array($result); if($row["num_rows"] > 0){ //user exists }
from https://stackoverflow.com/questions/6620019/check-if-sql-row-exists-with-php by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클 SQL Developer를 사용하여 텍스트 파일에 CLOB 내보내기 (0) | 2020.07.02 |
---|---|
[SQL] INSERT INTO는 그렇지 않은 경우 SQL 서버에 존재 (0) | 2020.07.02 |
[SQL] SQL 서버 DATETIME 포맷 (0) | 2020.07.02 |
[SQL] 대 'PATINDEX' '와 같은'SQL 문자열 비교 속도 (0) | 2020.07.02 |
[SQL] 어떻게 분할 쉼표는 MySQL을 저장 프로 시저의 텍스트를 분리 (0) | 2020.07.01 |