2013-11-15 2 views
-2

PHP 함수 내에서 mysqli 연산을 수행하는 방법을 알고 싶습니다. 제출 버튼과 함께 mysqli_query(), mysqli_fetch_array() 메소드를 사용해 보았습니다. 하지만 button type = "button"에서는 함수를 사용해야합니다. 이러한 함수는 이러한 메서드에서는 작동하지 않습니다. 어떻게 PHP 함수 내에서 이러한 mysql 쿼리를 실행할 수 있습니까?PHP 함수 내에서 MySQL을 사용하는 방법?

global $con;  
$con = mysqli_connect("localhost","root","");  
if(!$con) 
    die("Error: ". mysqli_error());  
else 
mysqli_select_db($con,"cityscape_content_management"); 

function delete_user() 
{  
include("PHP_Files/PHP_Form_Fields.php");  
    $id = $_POST["txtEmpID"];  
    $query_del = "delete from User_Register where emp_id = $id"; 

if(mysqli_query($con,$query_del)) 
    echo "Record Deleted";  
else 
    echo "Error :".mysqli_error($con); 
} 
+0

처럼 버튼이 "작동하지 않습니다" "나는 정의되지 않은 변수 통지를 얻을"를 의미한다, 당신은 그것을 언급해야한다. 스크립트가 오류를 던지고 오류 메시지를 표시하도록 PHP를 구성하지 않았다는 메시지가 표시되지 않으면 그것은 당신이 더 나아 가기 전에 고칠 필요가있는 것입니다; 오류 메시지의 도움없이 제대로 코딩하는 것은 불가능합니다. 여기에 [간단한 설명] (http://stackoverflow.com/a/5680885/13508)이 있습니다. –

답변

0

$con을 함수에 전달해야하며, 그렇지 않으면 함수에 정의되어 있지 않습니다.

+0

그것은 효과가 있지만 코드에 문제가있는 것 같습니다. phpmyadmin이 새로 고쳐지지 않습니다. 삽입, 업데이트, 삭제와 같은 mysql 작업 후 – shruti

-1

전역 내부 기능을 사용하십시오. 외부 기능을 사용했습니다.

function delete_user() 
    { 
    global $con; 
    include("PHP_Files/PHP_Form_Fields.php"); 

     $id = $_POST["txtEmpID"]; 

     $query_del = "delete from User_Register where emp_id = $id"; 

    if(mysqli_query($con,$query_del)) 
     echo "Record Deleted"; 

    else 
     echo "Error :".mysqli_error($con); 
    } 
+2

Ugh, 전역 ... –

+0

-1 알 수없는 쪽 효과 ... 가능한 최악의 ** 코드를 작성하려고 했습니까? –

+0

* 이론 -1 * ... 나는이 코드에 대해 기술적으로 부정적인 것이 없으므로 실제로 downvote하지 않을 것입니다. 그러나'global'은이 문제를 해결할 수있는 최악의 ** 방법 일 것입니다. 이것을 절대하지 마십시오. – rdlowrey

0

당신은 함수 매개 변수로는 $ 사기와 $ ID 변수를 전달할 수 있습니다

$con = mysqli_connect("localhost","root","") or trigger_error(mysqli_error());  
mysqli_select_db($con,"cityscape_content_management") or trigger_error(mysqli_error($con)); 
delete_user($_POST["txtEmpID"], $con); 

기능 :

function delete_user($id, $con) 
{  
    $id = intval($id); 
    include("PHP_Files/PHP_Form_Fields.php");  
    $query_del = "delete from User_Register where emp_id = $id"; 

    if(mysqli_query($con, $query_del)) 
     echo "Record Deleted";  
    else 
     echo "Error :" . mysqli_error($con); 
} 
+0

삭제 작업 후 phpmyadmin db가 새로 고쳐지지 않습니다. 또한 그것은 몇 가지 레코드를 삭제하고 몇 가지 다른 레코드에 대한 그것은 작동을 멈 춥니 다. 가능한 문제가 될 수있는 ... 모든 클릭 후 다시로드 페이지를 제출로 제출 대신 버튼을 사용하고 있습니다 .. – shruti

0

조언은 당신이 PDO, 외모 훨씬 쉬운을 사용하고 많은 안전 장치가 있습니다.

0

버튼 유형 = "button"은 데이터를 serv에 게시하지 않습니다. 어, 그래서 당신의 기능은 중 하나를 제출 = 유형을 유지하거나 당신이 입력 한 다음 = 버튼을하려는 경우 Frm1에는이 양식 ID가 onlick = 'document.getElementById("frm1").submit()';

입니다)

1처럼 클릭 이벤트에 양식을 제출할 필요가 작동하지 않습니다 또는

2) 코드

<button type="submit" formaction="delete.php" value="delete" /> 
+0

하지만 내가 제출하면 페이지가 다시로드됩니다 .. 나는 재 장전이 일어나기를 원하지 않는다. 내가 PHP 코드를 실행하지 못하게하면, PHP 코드 데이터를 서버로 보내야합니다. 그렇지 않으면 작동하지 않을 수도 있고 아약스를 사용하여 작업을 수행 할 수도 있습니다 (PHP 코드가 실행되지 않을 경우 – shruti

+0

). 새로 고침하지 않고 – ddw147

관련 문제