我是PHP和MySQL的新手。我有以下代码,但现在我需要将准备好的语句合并到。我尝试过很多东西,但没有运气。
以下是原始的PHP代码:
$sql = "SELECT name, address, city, phone, id FROM Lab7 WHERE name = '$name' ";
mysql_select_db('muftih_Registration');
$retval = mysql_query( $sql, $conn );
这是我的尝试不起作用:
$sql = "SELECT name, address, city, phone, id FROM Lab7 WHERE name = ?";
$sql->bindParam('s', $name);
mysql_select_db('muftih_Registration');
$retval = mysql_query( $sql, $conn );
我一直在:
致命错误:在非对象
上调用成员函数bindParam()
答案 0 :(得分:0)
mysql_
系列不支持预准备语句,您需要迁移到mysqli_
,这是一个不同的驱动程序库。此外,您无法将mysql_
和mysqli_
库混合在一起。
最后,mysql_
已被弃用了好几年了,已经在php 7中删除了。
概要:不要使用mysql _ 。
答案 1 :(得分:0)
您需要使用mysqli才能使用准备好的。
让我举个例子。
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = $mysqli->prepare("SELECT name, address, city, phone, id FROM Lab7 WHERE name = ?")) {
$stmt->bind_param("s", $name);
$stmt->execute();
$stmt->bind_result($name, $address, $city, $phone, $id);
$stmt->fetch();
echo "$name, $address, $city, $phone, $id"; // Print the retrieved row
$stmt->close();
}
希望这有帮助。
和平!的xD