我有1个1的V服务器。不幸的是,这种支持是不够的 此代码是登录文件的一部分,已经工作了近一年半。从昨天开始,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())
..........
答案 0 :(得分:2)
可能查询无效。(我知道它有效) 尝试看看错误报告
printf("%s\n", $mysqli->info);
printf("Errormessage: %s\n", $mysqli->error);
我认为,如果你有一些字母或符号,那么mysqli bind_param并不是英文字母。 尝试在准备声明之前加上这一行
$connection->set_charset('utf8');
答案 1 :(得分:0)
检查member
表是否存在,以及是否有id
,password
和address
字段。如果是这样,那么尝试直接运行您的查询。看看它是否失败以及错误是什么。另外,检查您与数据库的连接是否有效。