php - 使用 PHP 准备好的语句

标签 php mysql prepared-statement

我是 PHP 的新手..我被困在如何将我的 sql 语句转换为准备好的语句..我得到的错误消息是你“无法连接”..

我的代码如下

$connection = mysql_connect($host,$username,$password) or die ("can't connect"); 


$select_database = mysql_select_db($db_name);
$id = mysql_real_escape_string ($_GET ['id']); 

$query = 'SELECT * from &tbl_name where id=?';
$stmt = $connection->prepare($query);
$stmt->bind_param("d", $id);
$stmt->execute();
$rows=mysql_fetch_array($stmt);
$stmt->close();

最佳答案

你实际上有两个问题。

第一个与您的问题相关的是这一行:

$connection = mysql_connect($host,$username,$password) or die ("can't connect");

您说您收到错误消息无法连接。这意味着您的数据库连接的主机、用户名和/或密码无效。检查连接信息是否正确,您应该能够解决问题。

第二个是您正在使用 mysql_ 连接到您的数据库功能,然后尝试使用 mysqli_绑定(bind)/执行功能。你不能混搭。

因为您正在尝试使用 OOP 样式进行绑定(bind)/执行,所以这里有一个重新编码的示例应该会有所帮助:

$connection = new mysqli($host, $username, $password);
if ($connection->connect_error) {
    die("can't connect");
}
$query = 'SELECT * from tbl_name where id=?';
$stmt = $connecton->prepare($query);
$stmt->bind_param("d", $id);
$results = $stmt->execute();
$rows = $results->fetch_array();
$stmt->close();

关于php - 使用 PHP 准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361948/

相关文章:

php - KeyDown 上的 Jquery Ajax 检查用户名是否可用。数据库点击次数太多?

php - php中这两个语句有什么区别?

php - 无法在 php 中使用 MYSQL INSERT INTO

php - 使用 or_like codeigniter 时 join 未给出所需结果

mysql - POST 请求返回 422(无法处理的实体)

java - 为什么此 Java PreparedStatement 会抛出参数索引 = 1 的 ArrayIndexOutOfBoundsException 0?

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

java - android error org.json.JSONException : Value <! java.lang.String类型的DOCTYPE无法转换为JSONObject

php - 有没有更简单的方法来执行插入查询到 2 行?

php - MySQL 查询按月返回行数