关于php使用sqlsrc_query()函数执行sql代码的问题

我是在一个登陆页面设置了输入框来输入用户名和密码的,分别的name和id为ID,password,使用POST方式送到a.php页面来判断是否能够登录,下面是一些代码:在... 我是在一个登陆页面设置了输入框来输入用户名和密码的,分别的name和id为ID,password,使用POST方式送到a.php页面来判断是否能够登录,下面是一些代码:
在上面已经成功连接数据库的了,用的是sa账号连接的。
$userid = $_POST['ID']; //用户ID
$userpw = $_POST['password']; //用户输入的密码
$sql = "select * from AllID where ID=(?) and password=(?)";
$params = array( $userid, $userpw);
$query = sqlsrv_query($admin_conn, $sql, $params); //执行SQL语句
if( $query === false){ //查询不到结果
print_r(sqlsrv_errors());
echo "<script>alert('登录失败');</script>";
echo "<script>window.history.go(-1);</script>"; //返回上一级页面
}
else{ //执行语句无误
echo "登录成功,3秒后自动跳转到首页...";
}
现在出现的问题是无论我怎么修改$sql这个变量的值,都无法正确执行查询,下面是我尝试过的$sql的值:
$sql = "select * from AllID where ID=('?') and password=('?')";
$sql = "select * from AllID where ID='?' and password='?'";
$sql = "select * from AllID where ID=(?) and password=(?)";
如果我了解的东西没错的话,sqlsrv_query函数执行sql代码时里面的参数是需要用?号来做占位符的,于是我纠结了很久。。。。
求教,先行谢了,这个问题烦扰了很久~
展开
 我来答
pyllion
2012-07-15 · TA获得超过817个赞
知道小有建树答主
回答量:661
采纳率:100%
帮助的人:661万
展开全部
你试试下面的代码:

$userid = $_POST['ID']; //用户ID
$userpw = $_POST['password']; //用户输入的密码
$sql = "select * from AllID where ID=$userid and password=$userpw";
$query = sqlsrv_query($admin_conn, $sql); //执行SQL语句
if( $query === false){ //查询不到结果
print_r(sqlsrv_errors());
echo "<script>alert('登录失败');</script>";
echo "<script>window.history.go(-1);</script>"; //返回上一级页面
}
else{ //执行语句无误
echo "登录成功,3秒后自动跳转到首页...";
}
追问
sorry,浪费你思考的时间了,我那代码并没有写错,是数据库里的password字段写成了passoword,于是一直都查询错误。你这样写大概也能执行,我回去试试。另外分享一下我尝试到的东西:使用?号作占位符时,就算?号是要替换成字符串变量的,也不需要用加单引号或双引号括起来,只要在写$params这个数组的时候显式地说明是字符串变量就行了,例如用(string)变量来做强制类型转换
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式