php - 检查行是否存在否则创建一个

标签 php mysql

动机:如果不存在具有相同数据的行,我只想创建一行包含指定数据的行。 到目前为止我尝试过的是 -

代码:

<?php
if(empty($_GET['a'])) {$xyz ="new";} else{$xyz=$_GET['a'];}
$servername = "mysql.soemwhere.com";
$username = "u130204422_acb";
$password = "YES-I-KNOW";
$dbname = "u130204422_acb";


$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$output ="SELECT * FROM trailers
WHERE url='$xyz' LIMIT 1";
$result = mysqli_query($conn,$output);
while($row = mysqli_fetch_array($result)) {
 $pid=$row["title"];
echo $pid;}
if (mysqli_num_rows($result) > 0) {echo 'yes';}
else{
$msql = "INSERT INTO `trailers`(`url`,`title`) VALUES ('$xyz','dekhlia')";
if ($conn->query($msql) === TRUE) {
    echo "New record created successfully. Refrsh the page and it will echo dekhlia";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;}
echo "hehe";
$conn->close();} 
?>

我无法弄清楚为什么这段代码不起作用。

最佳答案

您在 SQL 字符串中添加了不必要的连接。

它是毒刺的一部分,所以,将其移除。

改变

$output ="SELECT * FROM trailers
WHERE url='.$xyz.' LIMIT 1";

收件人:

$output ="SELECT * FROM trailers
WHERE url='$xyz' LIMIT 1";

关于php - 检查行是否存在否则创建一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27143151/

相关文章:

php - 更改 Yii 中的页面标签?

MYSQL View 与选择性能和延迟

php - 得到像 Tree mysql 这样的结果

php - 在这种情况下是否可以有一个可为空的外键?

mysql - 在查找最小值(SQL)的情况下,当列具有相同值时如何获取第一行

php - 如何使用分隔符显示数据库一列中存储的多个值?

mysql - 优化当前2张表的MySQL查询

mysql - 如何导入现有数据库而不干扰现有数据

javascript - 在网络应用程序上存储图像的最佳方式是什么?

php - 如何最好地将移动服务与 CodeIgniter 集成?