包含变量的 PHP 查询字符串不起作用

里勒地图

当我使用 PHP 中的变量构建查询字符串时,它似乎不起作用。我目前的查询是:

$u = "admin";
$hash = password_hash("password", PASSWORD_DEFAULT);
$set_login = "INSERT INTO users (username, password) VALUES ({$u}, {$hash})";

*我正在脚本中进一步执行查询

如果我用{$u}它代表的字符串文字替换,并{$hash}只用密码的字符串文字替换,例如password,查询工作正常。但是,当我引入变量时,它就会中断。我试过分解查询字符串并使用连接运算符:

$set_login = "INSERT INTO users (username, password) VALUES ( " . $u . ", " . $hash . ")";

这也不起作用。然后我认为它可能与哈希有关,所以我将代码修改为(用于测试):

$u = "admin";
$p = "password";
$set_login = "INSERT INTO users (username, password) VALUES ({$u}, {$p})";

这也不起作用。

巨大的焦耳

最好的解决方案是使用准备好的语句,它非常简单。

这是您将如何使用准备好的语句来做到这一点

mysqli

<?php
$u = "admin";
$hash = password_hash("password", PASSWORD_DEFAULT);
$set_login = "INSERT INTO users (username, password) VALUES (?,?)";
$query = $ConnectionString->prepare($set_login);
$query->bind_param("ss",$u,$hash);

if($query){
    echo "success";
}else{

    error_log("error".$ConnectionString->error);
}

?>

PDO

<?php
$u    = "admin";
$hash = password_hash("password", PASSWORD_DEFAULT);

$query = $ConnectionString->prepare("INSERT INTO users (username, password) VALUES (?,?)")->execute(array($u,$hash));

if ($query) {
    echo "success";
} else {

    error_log("error" . $ConnectionString->errorInfo());
}

?>

一些有用的资源。

PDO 连接 PDO 教程 Mysqli 准备

注意:AS Jay 在他的评论中指出确保您在数据库中的密码字段大小至少为 60 个字符

在您的查询中,问题是您没有在引号周围包装字符串

您的查询应该是:

$set_login = "INSERT INTO admin (uname, upass) VALUES ('{$u}', '{$hash}')";

但这不是最好的推荐方法,您应该使用上述使用准备好的语句的方法之一。

这就是为什么你应该:Bobby Tables

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTML字符串值内的PHP变量-为什么不起作用?

来自分类Dev

php变量包含字符串并替换

来自分类Dev

为什么我的包含查询的字符串在存储过程中不起作用

来自分类Dev

在MySQL插入查询中,For循环中的PHP字符串不起作用

来自分类Dev

PHP Mysql查询中的长字符串不起作用

来自分类Dev

PHP:本地化包含变量的字符串

来自分类Dev

使用包含的PHP文件中的连接字符串或变量

来自分类Dev

通过包含字符串的变量设置对象不起作用

来自分类Dev

当字符串包含“ * /”时,注释/ * * /不起作用

来自分类Dev

PHP字符串比较(如果)不起作用

来自分类Dev

PHP mktime字符串不起作用

来自分类Dev

字符串数字到整数不起作用PHP

来自分类Dev

PHP mongoDB集群连接字符串不起作用

来自分类Dev

php字符串功能不起作用

来自分类Dev

PHP mktime字符串不起作用

来自分类Dev

简单的PHP字符串检查不起作用

来自分类Dev

php字符串替换不起作用

来自分类Dev

字符串插值在 php 中不起作用

来自分类Dev

字符串变量在树莓派上不起作用

来自分类Dev

包含SQL查询的PHP函数不起作用

来自分类Dev

PHP包含不起作用

来自分类Dev

PHP变量和MySQL LIKE查询不起作用

来自分类Dev

如何将包含HTML标记和php变量的字符串转换为php字符串变量?

来自分类Dev

如何在PHP中检测包含mysql_query字符串的字符串变量?

来自分类Dev

从JS变量更新查询字符串中的PHP变量

来自分类Dev

从JS变量更新查询字符串中的PHP变量

来自分类Dev

mysql php 查询字符串包含以输入开头的单词

来自分类Dev

HTML查询字符串中的PHP变量

来自分类Dev

PHP通过传递的变量构建MySQL查询字符串

Related 相关文章

热门标签

归档