2013-06-17 1 views
0

내 페이지에는 텍스트 상자가 몇 개 있으며 성, 이름 중 두 개는 필요하지 않습니다. 하나 또는 둘 모두의 필드에 NULL이 아닌 문자열 값으로 NULL을 삽입해야합니다. 현재 문자열 값으로 입력하고 있습니다. 문자열 대신 NULL 값을 삽입 할 수 있도록하려면 어떻게해야합니까? 내가 대신 매개 변수 중 하나에 대한 변수의 NULL에 전달하면PHP - 저장 프로 시저에 POST 값 또는 NULL 값 (NULL 문자열이 아님)을 전달하는 방법

PHP 코드

<?php 
// SQL connection and other variables... 

if (!empty($_POST['firstname'])) { 
    $firstname = $_POST['firstname']; 
} else { 
    $firstname = 'NULL'; 
} 
if (!empty($_POST['lastname'])) { 
    $lastname = $_POST['lastname']; 
} else { 
    $lastname = 'NULL'; 
} 

$sp = "exec sp_test_proc '$street1', '$street2', '$firstname', '$lastname'"; 
$res = odbc_exec($conn, $sp); 
?> 

는 그것을 잘 작동합니다. 변수를 사용하여 문제의 원인을 파악하지 못했습니다. 당신은 따옴표를 사용하여 그것을 문자열을 만들고있어 NULL 대신 'NULL'

+0

'$ firstname = ''; '등의 경우 어떻게됩니까? –

+0

준비된 명령문을 사용하여 프로 시저를 호출하고 NULL이라는 단어가 들어있는 문자열 대신 'null'의 원시 값을 전달하는 방법은 어떻습니까? – phpisuber01

+1

@Fred 그러면 그는 NULL이 아닌 빈 문자열을 갖게됩니다. – Jessica

답변

2

쓰기.

+0

이것이 맞습니다, 도와 주셔서 감사합니다. @Jessica 정말 고맙습니다. – Brian

1

따옴표로 묶지 않은 문자열로 NULL을 전달해야합니다. 이는 일반 SQL을 작성하기 때문입니다. 문이 유효한지 확인하십시오.

매개 변수가있는 쿼리의 경우 NULL 문자열 대신 NULL 값이어야합니다.

+0

무례하지 말고 똑같은 말을하고 있습니다. 보통 SQL의 경우 또는 매개 변수를 사용하는 prepare 문의 경우'NULL '이 아닌'NULL'을 사용합니다. – Jessica

+0

글쎄, null value ='$ var = null;'과 null string ='$ var ='null '; 그러나 나는 휴대 전화에 아주 어려운 포맷팅이 없다는 데 동의한다. –

+0

포맷팅과는 아무런 관련이 없습니다. 일반 SQL의 경우 X를 수행하고 매개 변수의 경우 X를 수행합니다. 두 가지 모두 X가 필요하기 때문에 요점은 상관 없습니다. 당신의 대답은 혼란 스럽습니다. – Jessica