【发布时间】:2013-09-20 19:55:09
【问题描述】:
我正在尝试使用AES_ENCRYPT() 对我的密码进行编码来登录系统。但是在尝试实现这些代码时,我收到了来自 xdebug 的一些警告:
...
$key = 'd0gis=SUPER-cute';
$sql = "SELECT * FROM `users2` WHERE username = ? AND pwd = AES_ENCRYPT(?, ?)";
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('sss', $username, $password, $key);
$stmt->execute();
$stmt->store_result();
...
当调试器遇到第 8 行或$stmt->prepare($sql); 时,来自 xdebug 的 6 个相同的警告表会显示:
(!) 警告:main(): 在第 8 行的 D:\xampp\htdocs\learnphp\includes\authenticate_mysqli.inc.php 中还不允许进行属性访问
$stmt 中的错误属性是空的,我没有真正的问题,但我只想知道是什么原因导致出现此警告消息。
谷歌搜索了这条警告信息,但没有找到任何解决方案:
【问题讨论】:
-
你为什么使用
stmt_init()?我以前从未见过这样用过的。通常直接是$db->prepare(...)。 -
我在 php.net 中关注 example
-
这很奇怪,因为有other documentation 表明您可以直接在您拥有的链接上调用
prepare,而且我一直看到它是这样做的。 -
请在此处查看我的答案:stackoverflow.com/questions/28870315/…(重复问题,虽然不知道如何标记它)
标签: php mysql mysqli prepared-statement xdebug