【发布时间】:2022-06-15 23:24:49
【问题描述】:
我经常使用准备好的语句来插入数据,但我正在尝试选择数据并且遇到了一个我似乎无法解决的问题。
此代码根本不起作用。没有错误,只是没有结果:
$student_name = "Student, Sample";
$student_number = "";
$SQLStmt = $db->prepare( "SELECT student_number FROM table WHERE `name` = ?" );
$SQLStmt->bind_param( "s", $student_name );
$SQLStmt->bind_result( $student_number );
$SQLStmt->execute();
$SQLStmt->store_result();
echo $student_number;
这段代码运行良好:
$student_name = "Student, Sample";
$student_number = "";
$SQLStatement = "SELECT student_number FROM table WHERE `name` = '".$student_name."'";
$result = $db->query($SQLStatement);
$myrow = $result->fetch_assoc();
echo $myrow['student_number'];
任何想法都将不胜感激。谢谢!
【问题讨论】:
-
要从 PHP 中获取错误即使在 LIVE 环境中在调试时临时将这 4 行添加到任何
MYSQLI_的顶部您要调试的基于脚本ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);。这将强制任何MYSQLI_错误生成一个您可以在浏览器上看到的异常以及正常的 PHP 错误。
标签: php mysql prepared-statement