如何在php中为web编程生成mysql变量(@variable)?
我使用PHP for MySQL进行了以下查询:如何在php中为web编程生成mysql变量(@variable)?,php,mysql,Php,Mysql,我使用PHP for MySQL进行了以下查询: $query = "SELECT `username` FROM `usersdata` (select @user := van FROM `usersdata`) WHERE `username` = @user AND `password` = ? "; 但它给出了这样一个错误: 致命错误:对第14行的/Applications/XAMPP/xamppfiles/htdocs/healthyfoodsite/authentication.
$query = "SELECT `username` FROM `usersdata` (select @user := van FROM `usersdata`) WHERE `username` = @user AND `password` = ? ";
但它给出了这样一个错误:
致命错误:对第14行的/Applications/XAMPP/xamppfiles/htdocs/healthyfoodsite/authentication.php中的非对象调用成员函数bind_param()
如何在PHP中为MySQL创建一个简单变量?我做错了什么?我需要在一个查询中完成所有操作
以下是我的全部代码:
require('db.php');
if(isset($_POST['submit'])){
if(isset($_POST['username']) && isset($_POST['password'])){
global $connection;
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT `username` FROM `usersdata` (select @user := van FROM `usersdata`) WHERE `username` = @user AND `password` = ? ";
$stmt = $connection->prepare($query);
$stmt->bind_param("ss",$username,$password);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0){
$stmt->bind_result($username);
while($stmt->fetch()){
echo $username;
}
}else{
echo "nothing happen";
}
}else{
header('location: ');
}
}
?>
@VARS只是MySQL变量,而不是PHP变量和cant传输。重新运行MySQL变量值的唯一方法是*SELECT@USER;;**这将返回在phpsorry中使用mysql的var USERi的内容,我不理解您的查询。在prepared语句中向Mysql传递参数是使用?操作数,如从
usersdata
中选择username
,其中username
=?和密码=?“然后用$stmt->bind_param($ss),$username,$password)为这两个参数赋值;在php即prepare语句中,“?”标记将替换为$stmt->bind_param($s),$username)。每个?标记都将替换为bind_param。这是正确的。在您的示例中,您给出了字符串“ss”类型中的两个变量”他说。第一个标记将替换为$username的内容,第二个标记将替换为$password。