mysql,php准备的语句与字符串匹配

发布于 2025-02-07 17:27:49 字数 738 浏览 2 评论 0原文

我经常使用准备好的语句来插入数据,但是我试图选择数据并有一个问题,似乎无法缠绕我的头。

该代码根本不起作用。没有错误,只是没有结果:

$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']; 

任何想法都将不胜感激。谢谢!

I use prepared statements rather frequently to insert data, but I'm trying to select data and having an issue I can't seem to wrap my head around.

This code does not work at all. No error, just no results:

$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;

This code works just fine:

$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']; 

Any ideas would be most appreciated. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

段念尘 2025-02-14 17:27:49

这不会从结果集中获取行,

$SQLStmt->store_result();

而是尝试

$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();
$results = SQLStmt->get_results();
$row = $results->fetch_assoc();
echo $row['student_number'];

This does not fetch rows from the resultset

$SQLStmt->store_result();

Try instead

$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();
$results = SQLStmt->get_results();
$row = $results->fetch_assoc();
echo $row['student_number'];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文