0
mysqli 준비 쿼리에 문제가있어 무엇이 잘못되었는지 알 수 없습니다. phpMyAdmin을에서Mysqli 쿼리 결과가 없습니다
내가이 쿼리
SELECT `country_id` FROM `oa_country` WHERE `name` = "Ελλάδα"
을 쓰고 있어요 그리고 난 성공적인 결과를 얻을.
는 내가 mysqli와 내가 오류가 문을 준비 그렇게하려고하면.
function getCountryId($country) {
print($country); \\prints "Ελλάδα" or anything else, even countries in latin letters.
$db = mysqli_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
$result = mysqli_prepare($db, "SELECT `country_id` FROM `oa_country` WHERE `name` = ? ;");
mysqli_stmt_bind_param($result, 's', $country);
mysqli_stmt_execute($result);
mysqli_stmt_bind_result($result, $countcountry);
print_r($result);\\ see below.
while(mysqli_stmt_fetch($result))
{
$countryid = $countcountry;
}
mysqli_stmt_close($result);
mysqli_close($db);
echo $countryid; \\undefined variable countryid
return $countryid;
}
Print $ result는 이러한 데이터를 인쇄합니다.
mysqli_stmt Object
(
[affected_rows] => -1
[insert_id] => 0
[num_rows] => 0
[param_count] => 1
[field_count] => 1
[errno] => 0
[error] =>
[error_list] => Array
(
)
[sqlstate] => 00000
[id] => 1
)
이상한 것은 작동하는 데 사용되는 것이지만 갑자기 멈추었으며 이유를 설명 할 수 없습니다!
P. 모든 인서트는 mysqli + prepare 문과 함께 작동한다. 다음과 같은 검색어가 작동하지 않습니다.
나는 내 수업
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
지금은이 오류가 이상이 오류 로깅을 수행 한 1
업데이트.
Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Column 'country_id' cannot be null' in /some/url/lib/registerClass.php:49
Stack trace:
#0 /some/url/lib/registerClass.php(49): mysqli_stmt_execute(Object(mysqli_stmt))
#1 /some/url/register.php(34): RegisterLibrary->Address(21267, 'kapa\n', '\xCE\x9D\xCE\xAC\xCF\x84\xCF\x83\xCE\xB9\xCE\xBF\xCF\x82', 'oriste', 'pws', '123123', 'asdasd', '4121sadsa', 'sadas', '13322', '\xCE\x95\xCE\xBB\xCE\xBB\xCE\xAC\xCE\xB4\xCE\xB1', '\xCE\x91\xCF\x84\xCF\x84\xCE\xB9\xCE\xBA\xCE\xAE')
그리고 아래
$db
변수 i는 UTF8에 캐릭터를 설정.
function getCountryId($country) {
$db = mysqli_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
mysqli_set_charset($db, 'utf8');
if ($stmt = mysqli_prepare($db, "SELECT country_id FROM oa_country WHERE name=?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $country);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $countryidr);
$thecountryid = $countryidr;
echo $thecountryid; //no echo.
/* fetch value */
mysqli_stmt_fetch($stmt);
/* close statement */
mysqli_stmt_close($stmt);
}
return $thecountryid; //no return.
}
어쩌면 mysqli_set_charset이 – bxN5
bxN5 @ 내가 그 다음 캐릭터 셋과 관련이있다 생각 설정하려고합니다. 업데이트 된 질문을 참조하십시오! –
@ bxN5 ok 나는 charset을 올바로 설정했고 제대로 작동했다. 당신이 그것에 대답하고 싶다면 그것을 받아 들일 것입니다 :) –