일부 코드는 데이터 선택과 함께 행 번호가 0인지 확인한 다음 삽입하여 정상 프로세스를 계속합니다. 문제는 정상적인 프로세스가 insert
전에 저장 되었기 때문에 존재하지 않는 문 select
에 의존한다는 것입니다. ajax 나 html과 관련없는 PHP 내에서 데이터 요청을 새로 고치는 방법은 무엇입니까?PHP mysql 새로 고침 선택 데이터
$user = $_GET['user']; // not stored user
$select = mysql_query("SELECT * FROM `table` WHERE username = ".$user);
$row = mysql_fetch_array($select);
$rownum = mysql_num_rows($select);
if(!$rownum){
mysql_query("INSERT INTO table (username, something) VALUES ('$user', 1)");
}
/* Here comes the problem */
if($row['something'] == 0){
die("Not found !"); // THIS if returns true since it was not found at first place before inserting
// i want it to refresh the $select data so it could be read as 1
}
는 내가 지금까지 반복
if(!$rownum){
mysql_query("INSERT INTO table (username, something) VALUES ('$user', 1)");
}
$select = mysql_query("SELECT * FROM `table` WHERE username = ".$user);
$row = mysql_fetch_array($select);
[..]
나는 간단한 방법이
당신은'GetData()'함수를 만들고 그 안에서'select'를 움직여 그 함수를 호출 할 수 있습니다. 'insert' 후에 데이터를 얻기 위해서는'select' 쿼리를 실행해야합니다. –
@rs. 그래, 나도 알아,하지만 난 그것을 할 가장 간단한 방법을 찾고 있는데 – Osa
샘플 코드는 [SQL injection] (http://unixwiz.net/techtips/sql-injection.html)에 취약하다. 심각한 [보안 위험] (http://bobby-tables.com/). 이 구멍을 고치려면 오래된 MySQL 확장에서 [PDO] (http://php.net/PDO)로 전환하고 [prepared statements] (http://www.php.net/PDO.prepared-statements)를 사용하십시오. 값을 매개 변수로 전달하여 직접 문자열로 보간하는 것이 아니라 명령문에 전달합니다. PDO 튜토리얼이 필요하면 [ "PHP와 PDO로 MySQL 스크립트 작성하기"(http://www.kitebird.com/articles/php-pdo.html)]를 시도하십시오. 저장하는 사이트는 귀하의 사이트 일 수 있습니다. – outis