为mysql php准备的语句
我很难让我准备好的声明发挥作用。似乎我对if($conn->query($sql)==TRUE){做了一些错误。我只需要我的代码在不传递错误代码的情况下工作 警告:mysqli::query()要求参数1为字符串、对象 以“ 我该怎么办?有人能告诉我该怎么办吗 我尝试过网上提供的不同的东西,但没有成功为mysql php准备的语句,php,mysql,Php,Mysql,我很难让我准备好的声明发挥作用。似乎我对if($conn->query($sql)==TRUE){做了一些错误。我只需要我的代码在不传递错误代码的情况下工作 警告:mysqli::query()要求参数1为字符串、对象 以“ 我该怎么办?有人能告诉我该怎么办吗 我尝试过网上提供的不同的东西,但没有成功 <?php // sqltest.php require_once 'login.php'; print " <form method='post'>
<?php // sqltest.php
require_once 'login.php';
print "
<form method='post'>
<i><h>EDIT </h></i>
<br>
<input type='text' name='username'/>Title
<br>
<input type='password' name='password'/>Author
<br>
<input type='submit' value='Edit'>
";
$conn = new mysqli($hn, $un, $pw, $db);
if ($conn->connect_error) die($conn->connect_error);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$sql = $conn->prepare("INSERT INTO classics (author, title, type) VALUES (?, ?, ?)");
$sql->bind_param("sss", $firstname, $lastname, $email);
// set parameters and execute
$sql->execute();
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
您正在将一个准备好的语句对象传递到查询中。请删除该对象,然后在如下所示的if条件下编写$sql->execute()。下面给出的代码将解决您的问题
if($sql->execute()) {
echo "Record updated successfully";
}
else {
print_r($sql->errorInfo());
}
您收到此错误可能是因为$conn->query($sql)
需要一个sql语句字符串,而您正在传入一个准备好的语句。您试图用代码实现什么?当您调用其execute
方法时,准备好的语句将被执行。调用$conn->query($sql)
在这里完全没有意义,你在混合两种不同的方法。我正在尝试编辑我的经典表。如何抛出SQL语句字符串?这就是我想知道的。我如何才能使它正常工作?@misorude ahhh,谢谢!!我现在知道了!