【发布时间】:2017-09-01 14:38:28
【问题描述】:
$id = $_REQUEST['id'];
$stmt = $conn->prepare('SELECT * FROM test WHERE id = ?');
echo $id;
$stmt->bind_param('s', $id);
$stmt->execute();
// This is line 12
while ($row = $stmt->fetch()) {
$test = $row['test'];
}
好的,我们开始吧。这段代码不起作用,因为我基本上收到一个错误,告诉我关注
#0 /example/example.php(2): require()
#1 {main}
thrown in /example/example.inc.php on line 12
我不知道我做错了什么,但我已经尝试过bind_result() 和$stmt->fetch_assoc(),它们也不起作用。我在这里阅读了很多其他问题,但它们对我没有帮助。
这是连接
<?
$servername = "exase";
$username = "exaus";
$password = "exapw";
$dbname = "exa_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
【问题讨论】:
-
你的连接是什么样的?
-
实际的错误信息是什么? (该堆栈跟踪上方的行)
-
您应该将参数绑定为 int,而不是字符串。
$stmt->bind_param('i', $id);不确定这是否能解决您的问题,但您目前做得不好。 -
Jay waot O cam ad 连接,但我还有其他几个脚本,一切正常
-
GrumpyCrouton 你回答了我关于 switch 语句的最后一个问题:D 不,id 不是一个数字,它只包含字母
标签: php mysql mysqli prepared-statement