gpt4 book ai didi

php - mysqli查询没有结果

转载 作者:行者123 更新时间:2023-11-29 10:58:46 26 4
gpt4 key购买 nike

我在 mysqli 准备查询时遇到问题,我无法找出问题所在。

在 phpmyadmin 中我正在编写此查询

SELECT `country_id` FROM `oa_country` WHERE `name` = "Ελλάδα"

我得到了成功的结果。

enter image description here

当我尝试使用 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
)

奇怪的是它曾经可以工作,但突然停止了,我无法解释为什么!

附注所有插入都使用 mysqli + 准备语句。像这样的查询停止工作。

更新 1。

<小时/>

我已经在我的类(class)上方完成了此错误记录

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

现在我收到此错误。

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 变量下方,我将字符集设置为 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

关于php - mysqli查询没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42602615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com