修改
感谢您的帮助。我编辑了我的帖子以反映下面建议的更改。我正在使用PDO进行数据库连接。我现在的代码如下:
HTML
<a href="includes/delete-customer.php?userID='.$row->customer_id.'">
PHP
<?php
//MySQL Database Connect
include 'includes/config.php';
// confirm that the 'id' variable has been set
if (isset($_GET['userID']) && is_numeric($_GET['userID']))
{
// get the 'id' variable from the URL
$id = $_GET['userID'];
/* Delete row from the customer table */
$id = $dbh->exec("DELETE FROM customer WHERE customer_id = '$id'");
$stmt->execute();
}
?>
的config.php
<?php
/*** mysql hostname ***/
$hostname = 'localhost';
/*** mysql username ***/
$username = 'user';
/*** mysql password ***/
$password = 'password';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=testDB", $username, $password);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
我非常确定HTML现在是正确的,问题在于delete-customer.php文件。我目前收到以下错误:致命错误:在非对象上调用成员函数exec()
我不确定如何正确实现PDO查询。任何进一步的建议都非常感谢。
答案 0 :(得分:1)
您的HTML部分说:
<a href="includes/delete-customer.php?customer_id=$id['.$row->customer_id.']">
这是您确切的HTML语法吗?这个参数应该是实际的数字id,即 -
<a href="includes/delete-customer.php?customer_id=3">
- 通过回显$row->customer_id
(假设它存在)或其他一些知道用户ID的方法。
您的HTML只需要发送实际数据,而不是任何类型的变量语法。您收到的PHP($_GET['customer_id']
)将为您解释并正确地将其传递给MySQL。
答案 1 :(得分:0)
您的网址将userID
作为get参数传递,但在您的php脚本中,您尝试访问customer_id
。尝试更改代码以检索userID
,它应该可以正常工作
if (isset($_GET['userID']) && is_numeric($_GET['userID']))
答案 2 :(得分:0)
<a href="includes/delete-customer.php?customer_id=<?php echo $id[$row->customer_id]; ?>">
假设$ id [$ row-&gt; customer_id]有效。
另外,除非你正在做一些管理验证/访问规则,否则你真的不应该从get数据库中删除它,并保证你没有任何人会在流氓中手动输入数字。那简直太疯狂了。