【发布时间】:2014-08-27 03:40:46
【问题描述】:
在阅读了有关参数化查询的相关问题后,我意识到它们是完全(好吧,除非您插入表值或其他东西)防止 SQL 注入的方法,即使它们在某种程度上(好吧,非常很多)冗长和重复。但是,我一直想知道如何正确测试它们的错误处理,以及在某些情况下是否需要进行错误处理。
对不起,如果这是一个新手问题,但是 PHP 和 MySQL 不是安装在同一台服务器上吗?除非有人关心连接查询的语法或数据库连接代码或其他什么,否则我不完全确定是否有必要检查每个语句的错误,例如:
if ($stmt->bind_param('s',$logon)) {
if ($stmt->execute()) {
if ($stmt->bind_result()) {
} else { return 'bat'; }
} else { return 'bar'; }
} else { return 'foo'; }
// or else:
$stmt->bind_param('s',$logon)) or trigger_error('Could not bind parameters!',E_USER_ERROR);
// etc.
附带说明,如果$stmt 连接由于某种原因没有关闭,而mysqli 连接却是,这是否会导致某种内部服务器错误?还是关闭实际的mysqli 连接也能解决问题?为什么要关闭$stmt?
无论如何,感谢您的回复。
更新:MySQL Parameterized Queries - Cache Duration [duplicate] // 没有必要关闭 $stmt,因为 PHP 最终会这样做。
注意事项:$stmt -> prepare(...) 与服务器交互。
【问题讨论】:
标签: php mysqli error-handling parameterized-query