Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为mysql php准备的语句_Php_Mysql - Fatal编程技术网

为mysql php准备的语句

为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'>

我很难让我准备好的声明发挥作用。似乎我对if($conn->query($sql)==TRUE){做了一些错误。我只需要我的代码在不传递错误代码的情况下工作

警告:mysqli::query()要求参数1为字符串、对象 以“

我该怎么办?有人能告诉我该怎么办吗

我尝试过网上提供的不同的东西,但没有成功

<?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,谢谢!!我现在知道了!