gpt4 book ai didi

php - MySQL 准备和执行的问题

转载 作者:行者123 更新时间:2023-11-29 02:24:44 25 4
gpt4 key购买 nike

我有一个 1and1 的虚拟服务器。不幸的是,支持还不够。
此代码是登录文件的一部分,已运行近 1.5 年。从昨天开始,execute 语句返回 false。我尝试了不同的方法,但我找不到为什么执行 return false ?

$mail     = "test";
$password = "test";
$prep = "SELECT id FROM member WHERE address=? AND password=?";
if ( $stmt = $mysqli->prepare($prep))
{
$stmt->bind_param( "ss", $mail, $password );
$stmt->execute();
$stmt->bind_result($id);
if ($stmt->fetch())
..........

当我减少 SELECT 语句并删除 AND 时,$stmt->execute() 返回 TRUE。

$mail     = "test";
$password = "test";
$prep = "SELECT id FROM member WHERE address=?";
if ( $stmt = $mysqli->prepare($prep))
{
$stmt->bind_param( "s", $mail );
$stmt->execute();
$stmt->bind_result($id);
if ($stmt->fetch())
..........

当我添加一个 AND 或者一个 OR 时它又失败了吗?

$mail     = "test";
$password = "test";
$prep = "SELECT id FROM member WHERE address=? OR password=?";
if ( $stmt = $mysqli->prepare($prep))
{
$stmt->bind_param( "ss", $mail, $password );
$stmt->execute();
$stmt->bind_result($id);
if ($stmt->fetch())
..........

最佳答案

可能查询变得无效。(我知道它在工作)尝试查看错误报告

printf("%s\n", $mysqli->info);
printf("Errormessage: %s\n", $mysqli->error);

我认为,mysqli bind_param 不能正确处理非英文字母,所以如果你有一些字母或符号......尝试将此行放在准备语句之前

$connection->set_charset('utf8');

关于php - MySQL 准备和执行的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587735/

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